aws-sdk-servicediscovery 1.88.0 → 1.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -826,9 +826,15 @@ module Aws::ServiceDiscovery
826
826
  # [1]: http://www.haproxy.org/
827
827
  #
828
828
  # @option params [String] :namespace_id
829
- # The ID of the namespace that you want to use to create the service.
830
- # The namespace ID must be specified, but it can be specified either
831
- # here or in the `DnsConfig` object.
829
+ # The ID or Amazon Resource Name (ARN) of the namespace that you want to
830
+ # use to create the service. For namespaces shared with your Amazon Web
831
+ # Services account, specify the namespace ARN. For more information
832
+ # about shared namespaces, see [Cross-account Cloud Map namespace
833
+ # sharing][1] in the *Cloud Map Developer Guide*.
834
+ #
835
+ #
836
+ #
837
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
832
838
  #
833
839
  # @option params [String] :creator_request_id
834
840
  # A unique string that identifies the request and that allows failed
@@ -913,6 +919,7 @@ module Aws::ServiceDiscovery
913
919
  # service: {
914
920
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita",
915
921
  # create_date: Time.parse(1587081768.334),
922
+ # created_by_account: "123456789012",
916
923
  # creator_request_id: "567c1193-6b00-4308-bd57-ad38a8822d25",
917
924
  # dns_config: {
918
925
  # dns_records: [
@@ -925,8 +932,58 @@ module Aws::ServiceDiscovery
925
932
  # routing_policy: "MULTIVALUE",
926
933
  # },
927
934
  # id: "srv-p5zdwlg5uvvzjita",
935
+ # instance_count: 0,
928
936
  # name: "myservice",
929
937
  # namespace_id: "ns-ylexjili4cdxy3xm",
938
+ # resource_owner: "123456789012",
939
+ # type: "DNS_HTTP",
940
+ # },
941
+ # }
942
+ #
943
+ # @example Example: Create service using namespace ARN
944
+ #
945
+ # # Namespace sharee creates a service using a namespace ARN instead of namespace ID, useful when working with shared
946
+ # # namespaces.
947
+ #
948
+ # resp = client.create_service({
949
+ # description: "Example service using namespace ARN",
950
+ # dns_config: {
951
+ # dns_records: [
952
+ # {
953
+ # ttl: 300,
954
+ # type: "A",
955
+ # },
956
+ # ],
957
+ # routing_policy: "MULTIVALUE",
958
+ # },
959
+ # name: "example-service",
960
+ # namespace_id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678",
961
+ # })
962
+ #
963
+ # resp.to_h outputs the following:
964
+ # {
965
+ # service: {
966
+ # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
967
+ # create_date: Time.parse(1705161600.0),
968
+ # created_by_account: "111122223333",
969
+ # creator_request_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
970
+ # description: "Example service using namespace ARN",
971
+ # dns_config: {
972
+ # dns_records: [
973
+ # {
974
+ # ttl: 300,
975
+ # type: "A",
976
+ # },
977
+ # ],
978
+ # namespace_id: "ns-abcd1234xmpl5678",
979
+ # routing_policy: "MULTIVALUE",
980
+ # },
981
+ # id: "srv-abcd1234xmpl5678",
982
+ # instance_count: 0,
983
+ # name: "example-service",
984
+ # namespace_id: "ns-abcd1234xmpl5678",
985
+ # resource_owner: "123456789012",
986
+ # type: "DNS_HTTP",
930
987
  # },
931
988
  # }
932
989
  #
@@ -934,7 +991,7 @@ module Aws::ServiceDiscovery
934
991
  #
935
992
  # resp = client.create_service({
936
993
  # name: "ServiceName", # required
937
- # namespace_id: "ResourceId",
994
+ # namespace_id: "Arn",
938
995
  # creator_request_id: "ResourceId",
939
996
  # description: "ResourceDescription",
940
997
  # dns_config: {
@@ -968,6 +1025,7 @@ module Aws::ServiceDiscovery
968
1025
  #
969
1026
  # resp.service.id #=> String
970
1027
  # resp.service.arn #=> String
1028
+ # resp.service.resource_owner #=> String
971
1029
  # resp.service.name #=> String
972
1030
  # resp.service.namespace_id #=> String
973
1031
  # resp.service.description #=> String
@@ -984,6 +1042,7 @@ module Aws::ServiceDiscovery
984
1042
  # resp.service.health_check_custom_config.failure_threshold #=> Integer
985
1043
  # resp.service.create_date #=> Time
986
1044
  # resp.service.creator_request_id #=> String
1045
+ # resp.service.created_by_account #=> String
987
1046
  #
988
1047
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateService AWS API Documentation
989
1048
  #
@@ -998,7 +1057,8 @@ module Aws::ServiceDiscovery
998
1057
  # contains one or more services, the request fails.
999
1058
  #
1000
1059
  # @option params [required, String] :id
1001
- # The ID of the namespace that you want to delete.
1060
+ # The ID or Amazon Resource Name (ARN) of the namespace that you want to
1061
+ # delete.
1002
1062
  #
1003
1063
  # @return [Types::DeleteNamespaceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1004
1064
  #
@@ -1015,13 +1075,26 @@ module Aws::ServiceDiscovery
1015
1075
  #
1016
1076
  # resp.to_h outputs the following:
1017
1077
  # {
1018
- # operation_id: "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k98y6drk",
1078
+ # operation_id: "abcd1234-xmpl-5678-9012-abcd1234xmplabcd",
1079
+ # }
1080
+ #
1081
+ # @example Example: Delete namespace using namespace ARN
1082
+ #
1083
+ # # Deletes a namespace using a namespace ARN instead of namespace ID, useful when working with shared namespaces.
1084
+ #
1085
+ # resp = client.delete_namespace({
1086
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678",
1087
+ # })
1088
+ #
1089
+ # resp.to_h outputs the following:
1090
+ # {
1091
+ # operation_id: "abcd1234-xmpl-5678-9012-abcd1234xmplabcd",
1019
1092
  # }
1020
1093
  #
1021
1094
  # @example Request syntax with placeholder values
1022
1095
  #
1023
1096
  # resp = client.delete_namespace({
1024
- # id: "ResourceId", # required
1097
+ # id: "Arn", # required
1025
1098
  # })
1026
1099
  #
1027
1100
  # @example Response structure
@@ -1042,7 +1115,15 @@ module Aws::ServiceDiscovery
1042
1115
  # request fails.
1043
1116
  #
1044
1117
  # @option params [required, String] :id
1045
- # The ID of the service that you want to delete.
1118
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
1119
+ # delete. If the namespace associated with the service is shared with
1120
+ # your Amazon Web Services account, specify the service ARN. For more
1121
+ # information about shared namespaces, see [Cross-account Cloud Map
1122
+ # namespace sharing][1].
1123
+ #
1124
+ #
1125
+ #
1126
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1046
1127
  #
1047
1128
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1048
1129
  #
@@ -1059,10 +1140,22 @@ module Aws::ServiceDiscovery
1059
1140
  # {
1060
1141
  # }
1061
1142
  #
1143
+ # @example Example: Delete service using service ARN
1144
+ #
1145
+ # # Deletes a service using a service ARN instead of service ID, useful when working with shared namespaces.
1146
+ #
1147
+ # resp = client.delete_service({
1148
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
1149
+ # })
1150
+ #
1151
+ # resp.to_h outputs the following:
1152
+ # {
1153
+ # }
1154
+ #
1062
1155
  # @example Request syntax with placeholder values
1063
1156
  #
1064
1157
  # resp = client.delete_service({
1065
- # id: "ResourceId", # required
1158
+ # id: "Arn", # required
1066
1159
  # })
1067
1160
  #
1068
1161
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteService AWS API Documentation
@@ -1077,7 +1170,15 @@ module Aws::ServiceDiscovery
1077
1170
  # Deletes specific attributes associated with a service.
1078
1171
  #
1079
1172
  # @option params [required, String] :service_id
1080
- # The ID of the service from which the attributes will be deleted.
1173
+ # The ID or Amazon Resource Name (ARN) of the service from which the
1174
+ # attributes will be deleted. For services created in a namespace shared
1175
+ # with your Amazon Web Services account, specify the service ARN. For
1176
+ # more information about shared namespaces, see [Cross-account Cloud Map
1177
+ # namespace sharing][1] in the *Cloud Map Developer Guide*.
1178
+ #
1179
+ #
1180
+ #
1181
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1081
1182
  #
1082
1183
  # @option params [required, Array<String>] :attributes
1083
1184
  # A list of keys corresponding to each attribute that you want to
@@ -1101,10 +1202,26 @@ module Aws::ServiceDiscovery
1101
1202
  # {
1102
1203
  # }
1103
1204
  #
1205
+ # @example Example: Delete service attributes using service ARN
1206
+ #
1207
+ # # Deletes service attributes using a service ARN instead of service ID, useful for cross-account scenarios or when working
1208
+ # # with shared namespaces.
1209
+ #
1210
+ # resp = client.delete_service_attributes({
1211
+ # attributes: [
1212
+ # "Port",
1213
+ # ],
1214
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
1215
+ # })
1216
+ #
1217
+ # resp.to_h outputs the following:
1218
+ # {
1219
+ # }
1220
+ #
1104
1221
  # @example Request syntax with placeholder values
1105
1222
  #
1106
1223
  # resp = client.delete_service_attributes({
1107
- # service_id: "ResourceId", # required
1224
+ # service_id: "Arn", # required
1108
1225
  # attributes: ["ServiceAttributeKey"], # required
1109
1226
  # })
1110
1227
  #
@@ -1121,7 +1238,15 @@ module Aws::ServiceDiscovery
1121
1238
  # Cloud Map created for the specified instance.
1122
1239
  #
1123
1240
  # @option params [required, String] :service_id
1124
- # The ID of the service that the instance is associated with.
1241
+ # The ID or Amazon Resource Name (ARN) of the service that the instance
1242
+ # is associated with. If the namespace associated with the service is
1243
+ # shared with your account, specify the service ARN. For more
1244
+ # information about shared namespaces, see [Cross-account Cloud Map
1245
+ # namespace sharing][1] in the *Cloud Map Developer Guide*.
1246
+ #
1247
+ #
1248
+ #
1249
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1125
1250
  #
1126
1251
  # @option params [required, String] :instance_id
1127
1252
  # The value that you specified for `Id` in the [RegisterInstance][1]
@@ -1150,10 +1275,24 @@ module Aws::ServiceDiscovery
1150
1275
  # operation_id: "4yejorelbukcjzpnr6tlmrghsjwpngf4-k98rnaiq",
1151
1276
  # }
1152
1277
  #
1278
+ # @example Example: Deregister instance using service ARN
1279
+ #
1280
+ # # Deregisters an instance using a service ARN instead of service ID, useful when working with shared namespaces.
1281
+ #
1282
+ # resp = client.deregister_instance({
1283
+ # instance_id: "i-abcd1234xmpl5678",
1284
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
1285
+ # })
1286
+ #
1287
+ # resp.to_h outputs the following:
1288
+ # {
1289
+ # operation_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
1290
+ # }
1291
+ #
1153
1292
  # @example Request syntax with placeholder values
1154
1293
  #
1155
1294
  # resp = client.deregister_instance({
1156
- # service_id: "ResourceId", # required
1295
+ # service_id: "Arn", # required
1157
1296
  # instance_id: "ResourceId", # required
1158
1297
  # })
1159
1298
  #
@@ -1178,7 +1317,7 @@ module Aws::ServiceDiscovery
1178
1317
  # discover instances.
1179
1318
  #
1180
1319
  # @option params [required, String] :namespace_name
1181
- # The `HttpName` name of the namespace. It's found in the
1320
+ # The `HttpName` name of the namespace. The `HttpName` is found in the
1182
1321
  # `HttpProperties` member of the `Properties` member of the namespace.
1183
1322
  # In most cases, `Name` and `HttpName` match. However, if you reuse
1184
1323
  # `Name` for namespace creation, a generated hash is added to `HttpName`
@@ -1229,6 +1368,12 @@ module Aws::ServiceDiscovery
1229
1368
  # state. In that case, return all instances. This is also called
1230
1369
  # failing open.
1231
1370
  #
1371
+ # @option params [String] :owner_account
1372
+ # The ID of the Amazon Web Services account that owns the namespace
1373
+ # associated with the instance, as specified in the namespace
1374
+ # `ResourceOwner` field. For instances associated with namespaces that
1375
+ # are shared with your account, you must specify an `OwnerAccount`.
1376
+ #
1232
1377
  # @return [Types::DiscoverInstancesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1233
1378
  #
1234
1379
  # * {Types::DiscoverInstancesResponse#instances #instances} => Array&lt;Types::HttpInstanceSummary&gt;
@@ -1262,6 +1407,43 @@ module Aws::ServiceDiscovery
1262
1407
  # ],
1263
1408
  # }
1264
1409
  #
1410
+ # @example Example: Discover instances using owner account
1411
+ #
1412
+ # # Discovers instances in a shared namespace by specifying the OwnerAccount parameter, useful when working with shared
1413
+ # # namespaces.
1414
+ #
1415
+ # resp = client.discover_instances({
1416
+ # namespace_name: "example-shared-namespace",
1417
+ # owner_account: "123456789012",
1418
+ # service_name: "shared-namespace-service",
1419
+ # })
1420
+ #
1421
+ # resp.to_h outputs the following:
1422
+ # {
1423
+ # instances: [
1424
+ # {
1425
+ # attributes: {
1426
+ # "AWS_INSTANCE_IPV4" => "192.0.2.44",
1427
+ # "AWS_INSTANCE_PORT" => "80",
1428
+ # },
1429
+ # health_status: "HEALTHY",
1430
+ # instance_id: "i-abcd1234xmpl5678",
1431
+ # namespace_name: "example-shared-namespace",
1432
+ # service_name: "shared-service",
1433
+ # },
1434
+ # {
1435
+ # attributes: {
1436
+ # "AWS_INSTANCE_IPV4" => "192.0.2.45",
1437
+ # "AWS_INSTANCE_PORT" => "80",
1438
+ # },
1439
+ # health_status: "HEALTHY",
1440
+ # instance_id: "i-efgh5678xmpl9012",
1441
+ # namespace_name: "example-shared-namespace",
1442
+ # service_name: "shared-service",
1443
+ # },
1444
+ # ],
1445
+ # }
1446
+ #
1265
1447
  # @example Request syntax with placeholder values
1266
1448
  #
1267
1449
  # resp = client.discover_instances({
@@ -1275,6 +1457,7 @@ module Aws::ServiceDiscovery
1275
1457
  # "AttrKey" => "AttrValue",
1276
1458
  # },
1277
1459
  # health_status: "HEALTHY", # accepts HEALTHY, UNHEALTHY, ALL, HEALTHY_OR_ELSE_ALL
1460
+ # owner_account: "AWSAccountId",
1278
1461
  # })
1279
1462
  #
1280
1463
  # @example Response structure
@@ -1300,13 +1483,25 @@ module Aws::ServiceDiscovery
1300
1483
  # Discovers the increasing revision associated with an instance.
1301
1484
  #
1302
1485
  # @option params [required, String] :namespace_name
1303
- # The `HttpName` name of the namespace. It's found in the
1486
+ # The `HttpName` name of the namespace. The `HttpName` is found in the
1304
1487
  # `HttpProperties` member of the `Properties` member of the namespace.
1305
1488
  #
1306
1489
  # @option params [required, String] :service_name
1307
1490
  # The name of the service that you specified when you registered the
1308
1491
  # instance.
1309
1492
  #
1493
+ # @option params [String] :owner_account
1494
+ # The ID of the Amazon Web Services account that owns the namespace
1495
+ # associated with the instance, as specified in the namespace
1496
+ # `ResourceOwner` field. For instances associated with namespaces that
1497
+ # are shared with your account, you must specify an `OwnerAccount`. For
1498
+ # more information about shared namespaces, see [Cross-account Cloud Map
1499
+ # namespace sharing][1] in the *Cloud Map Developer Guide*.
1500
+ #
1501
+ #
1502
+ #
1503
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1504
+ #
1310
1505
  # @return [Types::DiscoverInstancesRevisionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1311
1506
  #
1312
1507
  # * {Types::DiscoverInstancesRevisionResponse#instances_revision #instances_revision} => Integer
@@ -1326,11 +1521,28 @@ module Aws::ServiceDiscovery
1326
1521
  # instances_revision: 123456,
1327
1522
  # }
1328
1523
  #
1524
+ # @example Example: Discover instances revision using owner account
1525
+ #
1526
+ # # Discovers the instances revision in a shared namespace by specifying the OwnerAccount parameter, useful when working
1527
+ # # with shared namespaces.
1528
+ #
1529
+ # resp = client.discover_instances_revision({
1530
+ # namespace_name: "example-shared-namespace",
1531
+ # owner_account: "123456789012",
1532
+ # service_name: "shared-service",
1533
+ # })
1534
+ #
1535
+ # resp.to_h outputs the following:
1536
+ # {
1537
+ # instances_revision: 1001,
1538
+ # }
1539
+ #
1329
1540
  # @example Request syntax with placeholder values
1330
1541
  #
1331
1542
  # resp = client.discover_instances_revision({
1332
1543
  # namespace_name: "NamespaceName", # required
1333
1544
  # service_name: "ServiceName", # required
1545
+ # owner_account: "AWSAccountId",
1334
1546
  # })
1335
1547
  #
1336
1548
  # @example Response structure
@@ -1349,13 +1561,22 @@ module Aws::ServiceDiscovery
1349
1561
  # Gets information about a specified instance.
1350
1562
  #
1351
1563
  # @option params [required, String] :service_id
1352
- # The ID of the service that the instance is associated with.
1564
+ # The ID or Amazon Resource Name (ARN) of the service that the instance
1565
+ # is associated with. For services created in a shared namespace,
1566
+ # specify the service ARN. For more information about shared namespaces,
1567
+ # see [Cross-account Cloud Map namespace sharing][1] in the *Cloud Map
1568
+ # Developer Guide*.
1569
+ #
1570
+ #
1571
+ #
1572
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1353
1573
  #
1354
1574
  # @option params [required, String] :instance_id
1355
1575
  # The ID of the instance that you want to get information about.
1356
1576
  #
1357
1577
  # @return [Types::GetInstanceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1358
1578
  #
1579
+ # * {Types::GetInstanceResponse#resource_owner #resource_owner} => String
1359
1580
  # * {Types::GetInstanceResponse#instance #instance} => Types::Instance
1360
1581
  #
1361
1582
  #
@@ -1378,23 +1599,53 @@ module Aws::ServiceDiscovery
1378
1599
  # "region" => "us-west-2",
1379
1600
  # "stage" => "beta",
1380
1601
  # },
1602
+ # created_by_account: "123456789012",
1381
1603
  # id: "i-abcd1234",
1382
1604
  # },
1605
+ # resource_owner: "123456789012",
1606
+ # }
1607
+ #
1608
+ # @example Example: Get instance details using service ARN for shared namespace
1609
+ #
1610
+ # # This example gets information about an instance using a service ARN instead of service ID. This is useful for listing
1611
+ # # instances associated with shared namespaces.
1612
+ #
1613
+ # resp = client.get_instance({
1614
+ # instance_id: "i-abcd1234",
1615
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
1616
+ # })
1617
+ #
1618
+ # resp.to_h outputs the following:
1619
+ # {
1620
+ # instance: {
1621
+ # attributes: {
1622
+ # "AWS_INSTANCE_IPV4" => "192.0.2.44",
1623
+ # "AWS_INSTANCE_PORT" => "80",
1624
+ # "color" => "green",
1625
+ # "region" => "us-west-2",
1626
+ # "stage" => "beta",
1627
+ # },
1628
+ # created_by_account: "111122223333",
1629
+ # id: "i-abcd1234",
1630
+ # },
1631
+ # resource_owner: "123456789012",
1383
1632
  # }
1384
1633
  #
1385
1634
  # @example Request syntax with placeholder values
1386
1635
  #
1387
1636
  # resp = client.get_instance({
1388
- # service_id: "ResourceId", # required
1637
+ # service_id: "Arn", # required
1389
1638
  # instance_id: "ResourceId", # required
1390
1639
  # })
1391
1640
  #
1392
1641
  # @example Response structure
1393
1642
  #
1643
+ # resp.resource_owner #=> String
1394
1644
  # resp.instance.id #=> String
1395
1645
  # resp.instance.creator_request_id #=> String
1396
1646
  # resp.instance.attributes #=> Hash
1397
1647
  # resp.instance.attributes["AttrKey"] #=> String
1648
+ # resp.instance.created_by_account #=> String
1398
1649
  #
1399
1650
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstance AWS API Documentation
1400
1651
  #
@@ -1414,7 +1665,15 @@ module Aws::ServiceDiscovery
1414
1665
  # </note>
1415
1666
  #
1416
1667
  # @option params [required, String] :service_id
1417
- # The ID of the service that the instance is associated with.
1668
+ # The ID or Amazon Resource Name (ARN) of the service that the instance
1669
+ # is associated with. For services created in a shared namespace,
1670
+ # specify the service ARN. For more information about shared namespaces,
1671
+ # see [Cross-account Cloud Map namespace sharing][1] in the *Cloud Map
1672
+ # Developer Guide*.
1673
+ #
1674
+ #
1675
+ #
1676
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1418
1677
  #
1419
1678
  # @option params [Array<String>] :instances
1420
1679
  # An array that contains the IDs of all the instances that you want to
@@ -1470,10 +1729,27 @@ module Aws::ServiceDiscovery
1470
1729
  # },
1471
1730
  # }
1472
1731
  #
1732
+ # @example Example: Get instances health status using service ARN for shared namespace
1733
+ #
1734
+ # # This example gets the current health status of instances using a service ARN instead of service ID. This is useful for
1735
+ # # checking health status of instances associated with shared namespaces.
1736
+ #
1737
+ # resp = client.get_instances_health_status({
1738
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
1739
+ # })
1740
+ #
1741
+ # resp.to_h outputs the following:
1742
+ # {
1743
+ # status: {
1744
+ # "i-abcd1234" => "HEALTHY",
1745
+ # "i-abcd1235" => "UNHEALTHY",
1746
+ # },
1747
+ # }
1748
+ #
1473
1749
  # @example Request syntax with placeholder values
1474
1750
  #
1475
1751
  # resp = client.get_instances_health_status({
1476
- # service_id: "ResourceId", # required
1752
+ # service_id: "Arn", # required
1477
1753
  # instances: ["ResourceId"],
1478
1754
  # max_results: 1,
1479
1755
  # next_token: "NextToken",
@@ -1497,7 +1773,15 @@ module Aws::ServiceDiscovery
1497
1773
  # Gets information about a namespace.
1498
1774
  #
1499
1775
  # @option params [required, String] :id
1500
- # The ID of the namespace that you want to get information about.
1776
+ # The ID or Amazon Resource Name (ARN) of the namespace that you want to
1777
+ # get information about. For namespaces shared with your Amazon Web
1778
+ # Services account, specify the namespace ARN. For more information
1779
+ # about shared namespaces, see [Cross-account Cloud Map namespace
1780
+ # sharing][1] in the *Cloud Map Developer Guide*
1781
+ #
1782
+ #
1783
+ #
1784
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1501
1785
  #
1502
1786
  # @return [Types::GetNamespaceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1503
1787
  #
@@ -1528,6 +1812,40 @@ module Aws::ServiceDiscovery
1528
1812
  # http_name: "example-http.com",
1529
1813
  # },
1530
1814
  # },
1815
+ # resource_owner: "123456789012",
1816
+ # type: "HTTP",
1817
+ # },
1818
+ # }
1819
+ #
1820
+ # @example Example: Get namespace using namespace ARN
1821
+ #
1822
+ # # Gets namespace information using a namespace ARN instead of namespace ID, useful when working with shared namespaces.
1823
+ # # Shows a namespace owned by another account (123456789012) that is shared with the current account.
1824
+ #
1825
+ # resp = client.get_namespace({
1826
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678",
1827
+ # })
1828
+ #
1829
+ # resp.to_h outputs the following:
1830
+ # {
1831
+ # namespace: {
1832
+ # arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678",
1833
+ # create_date: Time.parse(1705161600.0),
1834
+ # creator_request_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
1835
+ # description: "Example shared namespace",
1836
+ # id: "ns-abcd1234xmpl5678",
1837
+ # name: "example-shared-namespace",
1838
+ # properties: {
1839
+ # dns_properties: {
1840
+ # soa: {
1841
+ # },
1842
+ # },
1843
+ # http_properties: {
1844
+ # http_name: "example-shared-namespace",
1845
+ # },
1846
+ # },
1847
+ # resource_owner: "123456789012",
1848
+ # service_count: 3,
1531
1849
  # type: "HTTP",
1532
1850
  # },
1533
1851
  # }
@@ -1535,13 +1853,14 @@ module Aws::ServiceDiscovery
1535
1853
  # @example Request syntax with placeholder values
1536
1854
  #
1537
1855
  # resp = client.get_namespace({
1538
- # id: "ResourceId", # required
1856
+ # id: "Arn", # required
1539
1857
  # })
1540
1858
  #
1541
1859
  # @example Response structure
1542
1860
  #
1543
1861
  # resp.namespace.id #=> String
1544
1862
  # resp.namespace.arn #=> String
1863
+ # resp.namespace.resource_owner #=> String
1545
1864
  # resp.namespace.name #=> String
1546
1865
  # resp.namespace.type #=> String, one of "DNS_PUBLIC", "DNS_PRIVATE", "HTTP"
1547
1866
  # resp.namespace.description #=> String
@@ -1576,6 +1895,12 @@ module Aws::ServiceDiscovery
1576
1895
  # @option params [required, String] :operation_id
1577
1896
  # The ID of the operation that you want to get more information about.
1578
1897
  #
1898
+ # @option params [String] :owner_account
1899
+ # The ID of the Amazon Web Services account that owns the namespace
1900
+ # associated with the operation, as specified in the namespace
1901
+ # `ResourceOwner` field. For operations associated with namespaces that
1902
+ # are shared with your account, you must specify an `OwnerAccount`.
1903
+ #
1579
1904
  # @return [Types::GetOperationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1580
1905
  #
1581
1906
  # * {Types::GetOperationResponse#operation #operation} => Types::Operation
@@ -1603,15 +1928,41 @@ module Aws::ServiceDiscovery
1603
1928
  # },
1604
1929
  # }
1605
1930
  #
1931
+ # @example Example: Get operation using owner account
1932
+ #
1933
+ # # Gets operation information by specifying the OwnerAccount parameter for operations associated with shared namespaces.
1934
+ #
1935
+ # resp = client.get_operation({
1936
+ # operation_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
1937
+ # owner_account: "123456789012",
1938
+ # })
1939
+ #
1940
+ # resp.to_h outputs the following:
1941
+ # {
1942
+ # operation: {
1943
+ # create_date: Time.parse(1705161600.0),
1944
+ # id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
1945
+ # owner_account: "123456789012",
1946
+ # status: "SUCCESS",
1947
+ # targets: {
1948
+ # "SERVICE" => "srv-abcd1234xmpl5678",
1949
+ # },
1950
+ # type: "CREATE_SERVICE",
1951
+ # update_date: Time.parse(1705161605.0),
1952
+ # },
1953
+ # }
1954
+ #
1606
1955
  # @example Request syntax with placeholder values
1607
1956
  #
1608
1957
  # resp = client.get_operation({
1609
- # operation_id: "ResourceId", # required
1958
+ # operation_id: "OperationId", # required
1959
+ # owner_account: "AWSAccountId",
1610
1960
  # })
1611
1961
  #
1612
1962
  # @example Response structure
1613
1963
  #
1614
1964
  # resp.operation.id #=> String
1965
+ # resp.operation.owner_account #=> String
1615
1966
  # resp.operation.type #=> String, one of "CREATE_NAMESPACE", "DELETE_NAMESPACE", "UPDATE_NAMESPACE", "UPDATE_SERVICE", "REGISTER_INSTANCE", "DEREGISTER_INSTANCE"
1616
1967
  # resp.operation.status #=> String, one of "SUBMITTED", "PENDING", "SUCCESS", "FAIL"
1617
1968
  # resp.operation.error_message #=> String
@@ -1633,7 +1984,15 @@ module Aws::ServiceDiscovery
1633
1984
  # Gets the settings for a specified service.
1634
1985
  #
1635
1986
  # @option params [required, String] :id
1636
- # The ID of the service that you want to get settings for.
1987
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
1988
+ # get settings for. For services created by consumers in a shared
1989
+ # namespace, specify the service ARN. For more information about shared
1990
+ # namespaces, see [Cross-account Cloud Map namespace sharing][1] in the
1991
+ # *Cloud Map Developer Guide*.
1992
+ #
1993
+ #
1994
+ #
1995
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1637
1996
  #
1638
1997
  # @return [Types::GetServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1639
1998
  #
@@ -1653,6 +2012,7 @@ module Aws::ServiceDiscovery
1653
2012
  # service: {
1654
2013
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
1655
2014
  # create_date: Time.parse("20181118T211707Z"),
2015
+ # created_by_account: "123456789012",
1656
2016
  # creator_request_id: "example-creator-request-id-0004",
1657
2017
  # description: "Example.com AWS Cloud Map HTTP Service",
1658
2018
  # health_check_config: {
@@ -1663,19 +2023,58 @@ module Aws::ServiceDiscovery
1663
2023
  # id: "srv-e4anhexample0004",
1664
2024
  # name: "example-http-service",
1665
2025
  # namespace_id: "ns-e4anhexample0004",
2026
+ # resource_owner: "123456789012",
2027
+ # type: "HTTP",
2028
+ # },
2029
+ # }
2030
+ #
2031
+ # @example Example: Get service using service ARN
2032
+ #
2033
+ # # Gets service settings using a service ARN instead of service ID, useful when working with shared namespaces. Shows a
2034
+ # # service created by a sharee (111122223333) in a namespace owned by another account (123456789012).
2035
+ #
2036
+ # resp = client.get_service({
2037
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
2038
+ # })
2039
+ #
2040
+ # resp.to_h outputs the following:
2041
+ # {
2042
+ # service: {
2043
+ # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
2044
+ # create_date: Time.parse(1705161600.0),
2045
+ # created_by_account: "111122223333",
2046
+ # creator_request_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
2047
+ # description: "Example service",
2048
+ # dns_config: {
2049
+ # dns_records: [
2050
+ # {
2051
+ # ttl: 300,
2052
+ # type: "A",
2053
+ # },
2054
+ # ],
2055
+ # namespace_id: "ns-abcd1234xmpl5678",
2056
+ # routing_policy: "MULTIVALUE",
2057
+ # },
2058
+ # id: "srv-abcd1234xmpl5678",
2059
+ # instance_count: 2,
2060
+ # name: "example-service",
2061
+ # namespace_id: "ns-abcd1234xmpl5678",
2062
+ # resource_owner: "123456789012",
2063
+ # type: "DNS_HTTP",
1666
2064
  # },
1667
2065
  # }
1668
2066
  #
1669
2067
  # @example Request syntax with placeholder values
1670
2068
  #
1671
2069
  # resp = client.get_service({
1672
- # id: "ResourceId", # required
2070
+ # id: "Arn", # required
1673
2071
  # })
1674
2072
  #
1675
2073
  # @example Response structure
1676
2074
  #
1677
2075
  # resp.service.id #=> String
1678
2076
  # resp.service.arn #=> String
2077
+ # resp.service.resource_owner #=> String
1679
2078
  # resp.service.name #=> String
1680
2079
  # resp.service.namespace_id #=> String
1681
2080
  # resp.service.description #=> String
@@ -1692,6 +2091,7 @@ module Aws::ServiceDiscovery
1692
2091
  # resp.service.health_check_custom_config.failure_threshold #=> Integer
1693
2092
  # resp.service.create_date #=> Time
1694
2093
  # resp.service.creator_request_id #=> String
2094
+ # resp.service.created_by_account #=> String
1695
2095
  #
1696
2096
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetService AWS API Documentation
1697
2097
  #
@@ -1705,7 +2105,15 @@ module Aws::ServiceDiscovery
1705
2105
  # Returns the attributes associated with a specified service.
1706
2106
  #
1707
2107
  # @option params [required, String] :service_id
1708
- # The ID of the service that you want to get attributes for.
2108
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
2109
+ # get attributes for. For services created in a namespace shared with
2110
+ # your Amazon Web Services account, specify the service ARN. For more
2111
+ # information about shared namespaces, see [Cross-account Cloud Map
2112
+ # namespace sharing][1] in the *Cloud Map Developer Guide*.
2113
+ #
2114
+ #
2115
+ #
2116
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1709
2117
  #
1710
2118
  # @return [Types::GetServiceAttributesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1711
2119
  #
@@ -1726,19 +2134,41 @@ module Aws::ServiceDiscovery
1726
2134
  # attributes: {
1727
2135
  # "port" => "80",
1728
2136
  # },
2137
+ # resource_owner: "123456789012",
1729
2138
  # service_arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
1730
2139
  # },
1731
2140
  # }
1732
2141
  #
2142
+ # @example Example: Get service attributes using service ARN
2143
+ #
2144
+ # # Gets service attributes using a service ARN instead of service ID, useful when working with shared namespaces. Shows
2145
+ # # attributes for a service created by a sharee in a namespace owned by another account.
2146
+ #
2147
+ # resp = client.get_service_attributes({
2148
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
2149
+ # })
2150
+ #
2151
+ # resp.to_h outputs the following:
2152
+ # {
2153
+ # service_attributes: {
2154
+ # attributes: {
2155
+ # "Port" => "80",
2156
+ # },
2157
+ # resource_owner: "123456789012",
2158
+ # service_arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
2159
+ # },
2160
+ # }
2161
+ #
1733
2162
  # @example Request syntax with placeholder values
1734
2163
  #
1735
2164
  # resp = client.get_service_attributes({
1736
- # service_id: "ResourceId", # required
2165
+ # service_id: "Arn", # required
1737
2166
  # })
1738
2167
  #
1739
2168
  # @example Response structure
1740
2169
  #
1741
2170
  # resp.service_attributes.service_arn #=> String
2171
+ # resp.service_attributes.resource_owner #=> String
1742
2172
  # resp.service_attributes.attributes #=> Hash
1743
2173
  # resp.service_attributes.attributes["ServiceAttributeKey"] #=> String
1744
2174
  #
@@ -1755,7 +2185,15 @@ module Aws::ServiceDiscovery
1755
2185
  # using a specified service.
1756
2186
  #
1757
2187
  # @option params [required, String] :service_id
1758
- # The ID of the service that you want to list instances for.
2188
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
2189
+ # list instances for. For services created in a shared namespace,
2190
+ # specify the service ARN. For more information about shared namespaces,
2191
+ # see [Cross-account Cloud Map namespace sharing][1] in the *Cloud Map
2192
+ # Developer Guide*.
2193
+ #
2194
+ #
2195
+ #
2196
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
1759
2197
  #
1760
2198
  # @option params [String] :next_token
1761
2199
  # For the first `ListInstances` request, omit this value.
@@ -1772,6 +2210,7 @@ module Aws::ServiceDiscovery
1772
2210
  #
1773
2211
  # @return [Types::ListInstancesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1774
2212
  #
2213
+ # * {Types::ListInstancesResponse#resource_owner #resource_owner} => String
1775
2214
  # * {Types::ListInstancesResponse#instances #instances} => Array&lt;Types::InstanceSummary&gt;
1776
2215
  # * {Types::ListInstancesResponse#next_token #next_token} => String
1777
2216
  #
@@ -1799,20 +2238,45 @@ module Aws::ServiceDiscovery
1799
2238
  # ],
1800
2239
  # }
1801
2240
  #
2241
+ # @example Example: List instances using service ARN for shared namespace
2242
+ #
2243
+ # # This example lists instances using a service ARN instead of service ID. This is useful for listing instances associated
2244
+ # # with shared namespaces.
2245
+ #
2246
+ # resp = client.list_instances({
2247
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
2248
+ # })
2249
+ #
2250
+ # resp.to_h outputs the following:
2251
+ # {
2252
+ # instances: [
2253
+ # {
2254
+ # attributes: {
2255
+ # "AWS_INSTANCE_IPV4" => "192.0.2.44",
2256
+ # "AWS_INSTANCE_PORT" => "80",
2257
+ # },
2258
+ # id: "i-abcd1234",
2259
+ # },
2260
+ # ],
2261
+ # resource_owner: "123456789012",
2262
+ # }
2263
+ #
1802
2264
  # @example Request syntax with placeholder values
1803
2265
  #
1804
2266
  # resp = client.list_instances({
1805
- # service_id: "ResourceId", # required
2267
+ # service_id: "Arn", # required
1806
2268
  # next_token: "NextToken",
1807
2269
  # max_results: 1,
1808
2270
  # })
1809
2271
  #
1810
2272
  # @example Response structure
1811
2273
  #
2274
+ # resp.resource_owner #=> String
1812
2275
  # resp.instances #=> Array
1813
2276
  # resp.instances[0].id #=> String
1814
2277
  # resp.instances[0].attributes #=> Hash
1815
2278
  # resp.instances[0].attributes["AttrKey"] #=> String
2279
+ # resp.instances[0].created_by_account #=> String
1816
2280
  # resp.next_token #=> String
1817
2281
  #
1818
2282
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListInstances AWS API Documentation
@@ -1825,7 +2289,8 @@ module Aws::ServiceDiscovery
1825
2289
  end
1826
2290
 
1827
2291
  # Lists summary information about the namespaces that were created by
1828
- # the current Amazon Web Services account.
2292
+ # the current Amazon Web Services account and shared with the current
2293
+ # Amazon Web Services account.
1829
2294
  #
1830
2295
  # @option params [String] :next_token
1831
2296
  # For the first `ListNamespaces` request, omit this value.
@@ -1874,47 +2339,105 @@ module Aws::ServiceDiscovery
1874
2339
  # namespaces: [
1875
2340
  # {
1876
2341
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-a3ccy2e7e3a7rile",
1877
- # create_date: Time.parse(1585354387.357),
2342
+ # create_date: Time.parse(1705161600.0),
1878
2343
  # id: "ns-a3ccy2e7e3a7rile",
1879
2344
  # name: "local",
1880
2345
  # properties: {
1881
2346
  # dns_properties: {
1882
2347
  # hosted_zone_id: "Z06752353VBUDTC32S84S",
2348
+ # soa: {
2349
+ # ttl: 60,
2350
+ # },
1883
2351
  # },
1884
2352
  # http_properties: {
1885
2353
  # http_name: "local",
1886
2354
  # },
1887
2355
  # },
2356
+ # resource_owner: "123456789012",
2357
+ # service_count: 2,
1888
2358
  # type: "DNS_PRIVATE",
1889
2359
  # },
1890
2360
  # {
1891
2361
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-pocfyjtrsmwtvcxx",
1892
- # create_date: Time.parse(1586468974.698),
2362
+ # create_date: Time.parse(1705161600.0),
1893
2363
  # description: "My second namespace",
1894
2364
  # id: "ns-pocfyjtrsmwtvcxx",
1895
2365
  # name: "My-second-namespace",
1896
2366
  # properties: {
1897
2367
  # dns_properties: {
2368
+ # soa: {
2369
+ # ttl: 60,
2370
+ # },
1898
2371
  # },
1899
2372
  # http_properties: {
1900
2373
  # http_name: "My-second-namespace",
1901
2374
  # },
1902
2375
  # },
2376
+ # resource_owner: "123456789012",
2377
+ # service_count: 1,
1903
2378
  # type: "HTTP",
1904
2379
  # },
1905
2380
  # {
1906
2381
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-ylexjili4cdxy3xm",
1907
- # create_date: Time.parse(1587055896.798),
2382
+ # create_date: Time.parse(1705161600.0),
1908
2383
  # id: "ns-ylexjili4cdxy3xm",
1909
2384
  # name: "example.com",
1910
2385
  # properties: {
1911
2386
  # dns_properties: {
1912
2387
  # hosted_zone_id: "Z09983722P0QME1B3KC8I",
2388
+ # soa: {
2389
+ # ttl: 60,
2390
+ # },
1913
2391
  # },
1914
2392
  # http_properties: {
1915
2393
  # http_name: "example.com",
1916
2394
  # },
1917
2395
  # },
2396
+ # resource_owner: "123456789012",
2397
+ # service_count: 3,
2398
+ # type: "DNS_PRIVATE",
2399
+ # },
2400
+ # ],
2401
+ # }
2402
+ #
2403
+ # @example Example: List namespaces filtered by resource owner
2404
+ #
2405
+ # # This example shows how to list namespaces that are shared with you from other AWS accounts using the RESOURCE_OWNER
2406
+ # # filter.
2407
+ #
2408
+ # resp = client.list_namespaces({
2409
+ # filters: [
2410
+ # {
2411
+ # name: "RESOURCE_OWNER",
2412
+ # values: [
2413
+ # "OTHER_ACCOUNTS",
2414
+ # ],
2415
+ # },
2416
+ # ],
2417
+ # })
2418
+ #
2419
+ # resp.to_h outputs the following:
2420
+ # {
2421
+ # namespaces: [
2422
+ # {
2423
+ # arn: "arn:aws:servicediscovery:us-west-2:111122223333:namespace/ns-abcd1234xmpl5678",
2424
+ # create_date: Time.parse(1705161600.0),
2425
+ # description: "Example private DNS namespace",
2426
+ # id: "ns-abcd1234xmpl5678",
2427
+ # name: "example-namespace",
2428
+ # properties: {
2429
+ # dns_properties: {
2430
+ # hosted_zone_id: "Z1D633PJN98FT9",
2431
+ # soa: {
2432
+ # ttl: 60,
2433
+ # },
2434
+ # },
2435
+ # http_properties: {
2436
+ # http_name: "example-namespace",
2437
+ # },
2438
+ # },
2439
+ # resource_owner: "111122223333",
2440
+ # service_count: 2,
1918
2441
  # type: "DNS_PRIVATE",
1919
2442
  # },
1920
2443
  # ],
@@ -1927,7 +2450,7 @@ module Aws::ServiceDiscovery
1927
2450
  # max_results: 1,
1928
2451
  # filters: [
1929
2452
  # {
1930
- # name: "TYPE", # required, accepts TYPE, NAME, HTTP_NAME
2453
+ # name: "TYPE", # required, accepts TYPE, NAME, HTTP_NAME, RESOURCE_OWNER
1931
2454
  # values: ["FilterValue"], # required
1932
2455
  # condition: "EQ", # accepts EQ, IN, BETWEEN, BEGINS_WITH
1933
2456
  # },
@@ -1939,6 +2462,7 @@ module Aws::ServiceDiscovery
1939
2462
  # resp.namespaces #=> Array
1940
2463
  # resp.namespaces[0].id #=> String
1941
2464
  # resp.namespaces[0].arn #=> String
2465
+ # resp.namespaces[0].resource_owner #=> String
1942
2466
  # resp.namespaces[0].name #=> String
1943
2467
  # resp.namespaces[0].type #=> String, one of "DNS_PUBLIC", "DNS_PRIVATE", "HTTP"
1944
2468
  # resp.namespaces[0].description #=> String
@@ -2112,6 +2636,7 @@ module Aws::ServiceDiscovery
2112
2636
  # {
2113
2637
  # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita",
2114
2638
  # create_date: Time.parse(1587081768.334),
2639
+ # created_by_account: "123456789012",
2115
2640
  # dns_config: {
2116
2641
  # dns_records: [
2117
2642
  # {
@@ -2123,6 +2648,60 @@ module Aws::ServiceDiscovery
2123
2648
  # },
2124
2649
  # id: "srv-p5zdwlg5uvvzjita",
2125
2650
  # name: "myservice",
2651
+ # resource_owner: "123456789012",
2652
+ # type: "DNS",
2653
+ # },
2654
+ # ],
2655
+ # }
2656
+ #
2657
+ # @example Example: List services in shared namespaces using resource owner filter
2658
+ #
2659
+ # # Lists services created in namespaces owned by other accounts using the RESOURCE_OWNER filter with OTHER_ACCOUNTS value,
2660
+ # # useful when working with shared namespaces. Account 111122223333 is making the request.
2661
+ #
2662
+ # resp = client.list_services({
2663
+ # filters: [
2664
+ # {
2665
+ # condition: "EQ",
2666
+ # name: "RESOURCE_OWNER",
2667
+ # values: [
2668
+ # "OTHER_ACCOUNTS",
2669
+ # ],
2670
+ # },
2671
+ # ],
2672
+ # })
2673
+ #
2674
+ # resp.to_h outputs the following:
2675
+ # {
2676
+ # services: [
2677
+ # {
2678
+ # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
2679
+ # create_date: Time.parse(1705161600.0),
2680
+ # created_by_account: "111122223333",
2681
+ # dns_config: {
2682
+ # },
2683
+ # id: "srv-abcd1234xmpl5678",
2684
+ # name: "shared-service-1",
2685
+ # resource_owner: "123456789012",
2686
+ # type: "HTTP",
2687
+ # },
2688
+ # {
2689
+ # arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-efgh5678xmpl9012",
2690
+ # create_date: Time.parse(1705161700.0),
2691
+ # created_by_account: "123456789012",
2692
+ # dns_config: {
2693
+ # dns_records: [
2694
+ # {
2695
+ # ttl: 300,
2696
+ # type: "A",
2697
+ # },
2698
+ # ],
2699
+ # routing_policy: "MULTIVALUE",
2700
+ # },
2701
+ # id: "srv-efgh5678xmpl9012",
2702
+ # name: "shared-service-2",
2703
+ # resource_owner: "123456789012",
2704
+ # type: "DNS",
2126
2705
  # },
2127
2706
  # ],
2128
2707
  # }
@@ -2134,7 +2713,7 @@ module Aws::ServiceDiscovery
2134
2713
  # max_results: 1,
2135
2714
  # filters: [
2136
2715
  # {
2137
- # name: "NAMESPACE_ID", # required, accepts NAMESPACE_ID
2716
+ # name: "NAMESPACE_ID", # required, accepts NAMESPACE_ID, RESOURCE_OWNER
2138
2717
  # values: ["FilterValue"], # required
2139
2718
  # condition: "EQ", # accepts EQ, IN, BETWEEN, BEGINS_WITH
2140
2719
  # },
@@ -2146,6 +2725,7 @@ module Aws::ServiceDiscovery
2146
2725
  # resp.services #=> Array
2147
2726
  # resp.services[0].id #=> String
2148
2727
  # resp.services[0].arn #=> String
2728
+ # resp.services[0].resource_owner #=> String
2149
2729
  # resp.services[0].name #=> String
2150
2730
  # resp.services[0].type #=> String, one of "HTTP", "DNS_HTTP", "DNS"
2151
2731
  # resp.services[0].description #=> String
@@ -2160,6 +2740,7 @@ module Aws::ServiceDiscovery
2160
2740
  # resp.services[0].health_check_config.failure_threshold #=> Integer
2161
2741
  # resp.services[0].health_check_custom_config.failure_threshold #=> Integer
2162
2742
  # resp.services[0].create_date #=> Time
2743
+ # resp.services[0].created_by_account #=> String
2163
2744
  # resp.next_token #=> String
2164
2745
  #
2165
2746
  # @see http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServices AWS API Documentation
@@ -2265,8 +2846,15 @@ module Aws::ServiceDiscovery
2265
2846
  # [2]: https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html
2266
2847
  #
2267
2848
  # @option params [required, String] :service_id
2268
- # The ID of the service that you want to use for settings for the
2269
- # instance.
2849
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
2850
+ # use for settings for the instance. For services created in a shared
2851
+ # namespace, specify the service ARN. For more information about shared
2852
+ # namespaces, see [Cross-account Cloud Map namespace sharing][1] in the
2853
+ # *Cloud Map Developer Guide*.
2854
+ #
2855
+ #
2856
+ #
2857
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
2270
2858
  #
2271
2859
  # @option params [required, String] :instance_id
2272
2860
  # An identifier that you want to associate with the instance. Note the
@@ -2456,10 +3044,29 @@ module Aws::ServiceDiscovery
2456
3044
  # operation_id: "4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7",
2457
3045
  # }
2458
3046
  #
3047
+ # @example Example: Register instance using service ARN
3048
+ #
3049
+ # # Registers an instance using a service ARN instead of service ID, useful when working with shared namespaces. Shows
3050
+ # # registering an instance to a service created by a sharee in a namespace owned by another account.
3051
+ #
3052
+ # resp = client.register_instance({
3053
+ # attributes: {
3054
+ # "AWS_INSTANCE_IPV4" => "192.0.2.44",
3055
+ # "AWS_INSTANCE_PORT" => "80",
3056
+ # },
3057
+ # instance_id: "i-abcd1234xmpl5678",
3058
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
3059
+ # })
3060
+ #
3061
+ # resp.to_h outputs the following:
3062
+ # {
3063
+ # operation_id: "abcd1234-xmpl-5678-9012-abcd1234xmpl",
3064
+ # }
3065
+ #
2459
3066
  # @example Request syntax with placeholder values
2460
3067
  #
2461
3068
  # resp = client.register_instance({
2462
- # service_id: "ResourceId", # required
3069
+ # service_id: "Arn", # required
2463
3070
  # instance_id: "InstanceId", # required
2464
3071
  # creator_request_id: "ResourceId",
2465
3072
  # attributes: { # required
@@ -2584,7 +3191,8 @@ module Aws::ServiceDiscovery
2584
3191
  # Updates an HTTP namespace.
2585
3192
  #
2586
3193
  # @option params [required, String] :id
2587
- # The ID of the namespace that you want to update.
3194
+ # The ID or Amazon Resource Name (ARN) of the namespace that you want to
3195
+ # update.
2588
3196
  #
2589
3197
  # @option params [String] :updater_request_id
2590
3198
  # A unique string that identifies the request and that allows failed
@@ -2619,10 +3227,26 @@ module Aws::ServiceDiscovery
2619
3227
  # operation_id: "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE",
2620
3228
  # }
2621
3229
  #
3230
+ # @example Example: Update HTTP namespace using namespace ARN for shared namespace
3231
+ #
3232
+ # # This example updates an HTTP namespace using a namespace ARN instead of namespace ID.
3233
+ #
3234
+ # resp = client.update_http_namespace({
3235
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-vh4nbmexample",
3236
+ # namespace: {
3237
+ # description: "Updated description for shared HTTP namespace.",
3238
+ # },
3239
+ # })
3240
+ #
3241
+ # resp.to_h outputs the following:
3242
+ # {
3243
+ # operation_id: "ft52xe2koxhoeormaceymagglsdjyvexample",
3244
+ # }
3245
+ #
2622
3246
  # @example Request syntax with placeholder values
2623
3247
  #
2624
3248
  # resp = client.update_http_namespace({
2625
- # id: "ResourceId", # required
3249
+ # id: "Arn", # required
2626
3250
  # updater_request_id: "ResourceId",
2627
3251
  # namespace: { # required
2628
3252
  # description: "ResourceDescription", # required
@@ -2658,8 +3282,16 @@ module Aws::ServiceDiscovery
2658
3282
  # [1]: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html
2659
3283
  #
2660
3284
  # @option params [required, String] :service_id
2661
- # The ID of the service that includes the configuration for the custom
2662
- # health check that you want to change the status for.
3285
+ # The ID or Amazon Resource Name (ARN) of the service that includes the
3286
+ # configuration for the custom health check that you want to change the
3287
+ # status for. For services created in a shared namespace, specify the
3288
+ # service ARN. For more information about shared namespaces, see
3289
+ # [Cross-account Cloud Map namespace sharing][1] in the *Cloud Map
3290
+ # Developer Guide*.
3291
+ #
3292
+ #
3293
+ #
3294
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
2663
3295
  #
2664
3296
  # @option params [required, String] :instance_id
2665
3297
  # The ID of the instance that you want to change the health status for.
@@ -2681,10 +3313,25 @@ module Aws::ServiceDiscovery
2681
3313
  # status: "HEALTHY",
2682
3314
  # })
2683
3315
  #
3316
+ # @example Example: Update instance custom health status using service ARN
3317
+ #
3318
+ # # Updates instance custom health status using a service ARN instead of service ID, useful when working with shared
3319
+ # # namespaces.
3320
+ #
3321
+ # resp = client.update_instance_custom_health_status({
3322
+ # instance_id: "i-abcd1234xmpl5678",
3323
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
3324
+ # status: "HEALTHY",
3325
+ # })
3326
+ #
3327
+ # resp.to_h outputs the following:
3328
+ # {
3329
+ # }
3330
+ #
2684
3331
  # @example Request syntax with placeholder values
2685
3332
  #
2686
3333
  # resp = client.update_instance_custom_health_status({
2687
- # service_id: "ResourceId", # required
3334
+ # service_id: "Arn", # required
2688
3335
  # instance_id: "ResourceId", # required
2689
3336
  # status: "HEALTHY", # required, accepts HEALTHY, UNHEALTHY
2690
3337
  # })
@@ -2701,7 +3348,8 @@ module Aws::ServiceDiscovery
2701
3348
  # Updates a private DNS namespace.
2702
3349
  #
2703
3350
  # @option params [required, String] :id
2704
- # The ID of the namespace that you want to update.
3351
+ # The ID or Amazon Resource Name (ARN) of the namespace that you want to
3352
+ # update.
2705
3353
  #
2706
3354
  # @option params [String] :updater_request_id
2707
3355
  # A unique string that identifies the request and that allows failed
@@ -2720,9 +3368,9 @@ module Aws::ServiceDiscovery
2720
3368
  # * {Types::UpdatePrivateDnsNamespaceResponse#operation_id #operation_id} => String
2721
3369
  #
2722
3370
  #
2723
- # @example Example: To update a public DNS namespace
3371
+ # @example Example: To update a private DNS namespace
2724
3372
  #
2725
- # # The following example updates the description of a public DNS namespace.
3373
+ # # The following example updates the description of a private DNS namespace.
2726
3374
  #
2727
3375
  # resp = client.update_private_dns_namespace({
2728
3376
  # id: "ns-bk3aEXAMPLE",
@@ -2734,30 +3382,29 @@ module Aws::ServiceDiscovery
2734
3382
  #
2735
3383
  # resp.to_h outputs the following:
2736
3384
  # {
2737
- # operation_id: "ft52xe2koxhoeormaceymagglsdjEXAMPLE",
3385
+ # operation_id: "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE",
2738
3386
  # }
2739
3387
  #
2740
- # @example Example: To update a private DNS namespace
3388
+ # @example Example: Update private DNS namespace using namespace ARN for shared namespace
2741
3389
  #
2742
- # # The following example updates the description of a private DNS namespace.
3390
+ # # This example updates a private DNS namespace using a namespace ARN instead of namespace ID.
2743
3391
  #
2744
3392
  # resp = client.update_private_dns_namespace({
2745
- # id: "ns-bk3aEXAMPLE",
3393
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-bk3aexample",
2746
3394
  # namespace: {
2747
- # description: "The updated namespace description.",
3395
+ # description: "Updated description for shared private DNS namespace.",
2748
3396
  # },
2749
- # updater_request_id: "",
2750
3397
  # })
2751
3398
  #
2752
3399
  # resp.to_h outputs the following:
2753
3400
  # {
2754
- # operation_id: "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE",
3401
+ # operation_id: "ft52xe2koxhoeormaceymagglsdjyvexample",
2755
3402
  # }
2756
3403
  #
2757
3404
  # @example Request syntax with placeholder values
2758
3405
  #
2759
3406
  # resp = client.update_private_dns_namespace({
2760
- # id: "ResourceId", # required
3407
+ # id: "Arn", # required
2761
3408
  # updater_request_id: "ResourceId",
2762
3409
  # namespace: { # required
2763
3410
  # description: "ResourceDescription",
@@ -2787,7 +3434,7 @@ module Aws::ServiceDiscovery
2787
3434
  # Updates a public DNS namespace.
2788
3435
  #
2789
3436
  # @option params [required, String] :id
2790
- # The ID of the namespace being updated.
3437
+ # The ID or Amazon Resource Name (ARN) of the namespace being updated.
2791
3438
  #
2792
3439
  # @option params [String] :updater_request_id
2793
3440
  # A unique string that identifies the request and that allows failed
@@ -2805,10 +3452,44 @@ module Aws::ServiceDiscovery
2805
3452
  #
2806
3453
  # * {Types::UpdatePublicDnsNamespaceResponse#operation_id #operation_id} => String
2807
3454
  #
3455
+ #
3456
+ # @example Example: To update a public DNS namespace
3457
+ #
3458
+ # # The following example updates the description of a public DNS namespace.
3459
+ #
3460
+ # resp = client.update_public_dns_namespace({
3461
+ # id: "ns-bk3aEXAMPLE",
3462
+ # namespace: {
3463
+ # description: "The updated namespace description.",
3464
+ # },
3465
+ # updater_request_id: "",
3466
+ # })
3467
+ #
3468
+ # resp.to_h outputs the following:
3469
+ # {
3470
+ # operation_id: "ft52xe2koxhoeormaceymagglsdjEXAMPLE",
3471
+ # }
3472
+ #
3473
+ # @example Example: Update public DNS namespace using namespace ARN for shared namespace
3474
+ #
3475
+ # # This example updates a public DNS namespace using a namespace ARN instead of namespace ID.
3476
+ #
3477
+ # resp = client.update_public_dns_namespace({
3478
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-bk3aexample",
3479
+ # namespace: {
3480
+ # description: "Updated description for shared public DNS namespace.",
3481
+ # },
3482
+ # })
3483
+ #
3484
+ # resp.to_h outputs the following:
3485
+ # {
3486
+ # operation_id: "ft52xe2koxhoeormaceymagglsdjexample",
3487
+ # }
3488
+ #
2808
3489
  # @example Request syntax with placeholder values
2809
3490
  #
2810
3491
  # resp = client.update_public_dns_namespace({
2811
- # id: "ResourceId", # required
3492
+ # id: "Arn", # required
2812
3493
  # updater_request_id: "ResourceId",
2813
3494
  # namespace: { # required
2814
3495
  # description: "ResourceDescription",
@@ -2856,12 +3537,31 @@ module Aws::ServiceDiscovery
2856
3537
  # an `UpdateService` request, the configuration isn't deleted from
2857
3538
  # the service.
2858
3539
  #
3540
+ # <note markdown="1"> You can't call `UpdateService` and update settings in the following
3541
+ # scenarios:
3542
+ #
3543
+ # * When the service is associated with an HTTP namespace
3544
+ #
3545
+ # * When the service is associated with a shared namespace and contains
3546
+ # instances that were registered by Amazon Web Services accounts other
3547
+ # than the account making the `UpdateService` call
3548
+ #
3549
+ # </note>
3550
+ #
2859
3551
  # When you update settings for a service, Cloud Map also updates the
2860
3552
  # corresponding settings in all the records and health checks that were
2861
3553
  # created by using the specified service.
2862
3554
  #
2863
3555
  # @option params [required, String] :id
2864
- # The ID of the service that you want to update.
3556
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
3557
+ # update. If the namespace associated with the service is shared with
3558
+ # your Amazon Web Services account, specify the service ARN. For more
3559
+ # information about shared namespaces, see [Cross-account Cloud Map
3560
+ # namespace sharing][1] in the *Cloud Map Developer Guide*
3561
+ #
3562
+ #
3563
+ #
3564
+ # [1]: https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html
2865
3565
  #
2866
3566
  # @option params [required, Types::ServiceChange] :service
2867
3567
  # A complex type that contains the new settings for the service. You can
@@ -2900,10 +3600,27 @@ module Aws::ServiceDiscovery
2900
3600
  # operation_id: "m35hsdrkxwjffm3xef4bxyy6vc3ewakx-jdn3y5g5",
2901
3601
  # }
2902
3602
  #
3603
+ # @example Example: Update service using service ARN for shared namespace
3604
+ #
3605
+ # # This example updates a service using a service ARN instead of service ID. This is useful for updating services
3606
+ # # associated with shared namespaces.
3607
+ #
3608
+ # resp = client.update_service({
3609
+ # id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004",
3610
+ # service: {
3611
+ # description: "Updated service description for shared namespace",
3612
+ # },
3613
+ # })
3614
+ #
3615
+ # resp.to_h outputs the following:
3616
+ # {
3617
+ # operation_id: "m35hsdrkxwjffm3xef4bxyy6vc3ewakx-jdn3y5g5",
3618
+ # }
3619
+ #
2903
3620
  # @example Request syntax with placeholder values
2904
3621
  #
2905
3622
  # resp = client.update_service({
2906
- # id: "ResourceId", # required
3623
+ # id: "Arn", # required
2907
3624
  # service: { # required
2908
3625
  # description: "ResourceDescription",
2909
3626
  # dns_config: {
@@ -2939,7 +3656,9 @@ module Aws::ServiceDiscovery
2939
3656
  # attributes.
2940
3657
  #
2941
3658
  # @option params [required, String] :service_id
2942
- # The ID of the service that you want to update.
3659
+ # The ID or Amazon Resource Name (ARN) of the service that you want to
3660
+ # update. For services created in a namespace shared with your Amazon
3661
+ # Web Services account, specify the service ARN.
2943
3662
  #
2944
3663
  # @option params [required, Hash<String,String>] :attributes
2945
3664
  # A string map that contains attribute key-value pairs.
@@ -2962,10 +3681,26 @@ module Aws::ServiceDiscovery
2962
3681
  # {
2963
3682
  # }
2964
3683
  #
3684
+ # @example Example: Update service attributes using service ARN
3685
+ #
3686
+ # # Updates service attributes using a service ARN instead of service ID, useful when working with shared namespaces.
3687
+ #
3688
+ # resp = client.update_service_attributes({
3689
+ # attributes: {
3690
+ # "Port" => "8080",
3691
+ # "Protocol" => "HTTP",
3692
+ # },
3693
+ # service_id: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678",
3694
+ # })
3695
+ #
3696
+ # resp.to_h outputs the following:
3697
+ # {
3698
+ # }
3699
+ #
2965
3700
  # @example Request syntax with placeholder values
2966
3701
  #
2967
3702
  # resp = client.update_service_attributes({
2968
- # service_id: "ResourceId", # required
3703
+ # service_id: "Arn", # required
2969
3704
  # attributes: { # required
2970
3705
  # "ServiceAttributeKey" => "ServiceAttributeValue",
2971
3706
  # },
@@ -2998,7 +3733,7 @@ module Aws::ServiceDiscovery
2998
3733
  tracer: tracer
2999
3734
  )
3000
3735
  context[:gem_name] = 'aws-sdk-servicediscovery'
3001
- context[:gem_version] = '1.88.0'
3736
+ context[:gem_version] = '1.90.0'
3002
3737
  Seahorse::Client::Request.new(handlers, context)
3003
3738
  end
3004
3739