aws-sdk-networkmanager 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -348,12 +348,7 @@ module Aws::NetworkManager
348
348
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpnConnections.html
349
349
  #
350
350
  # @option params [required, String] :customer_gateway_arn
351
- # The Amazon Resource Name (ARN) of the customer gateway. For more
352
- # information, see [Resources Defined by Amazon EC2][1].
353
- #
354
- #
355
- #
356
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies
351
+ # The Amazon Resource Name (ARN) of the customer gateway.
357
352
  #
358
353
  # @option params [required, String] :global_network_id
359
354
  # The ID of the global network.
@@ -570,12 +565,13 @@ module Aws::NetworkManager
570
565
  # The ID of the global network.
571
566
  #
572
567
  # @option params [Types::AWSLocation] :aws_location
573
- # The AWS location of the device.
568
+ # The Amazon Web Services location of the device, if applicable. For an
569
+ # on-premises device, you can omit this parameter.
574
570
  #
575
571
  # @option params [String] :description
576
572
  # A description of the device.
577
573
  #
578
- # Length Constraints: Maximum length of 256 characters.
574
+ # Constraints: Maximum length of 256 characters.
579
575
  #
580
576
  # @option params [String] :type
581
577
  # The type of the device.
@@ -583,17 +579,17 @@ module Aws::NetworkManager
583
579
  # @option params [String] :vendor
584
580
  # The vendor of the device.
585
581
  #
586
- # Length Constraints: Maximum length of 128 characters.
582
+ # Constraints: Maximum length of 128 characters.
587
583
  #
588
584
  # @option params [String] :model
589
585
  # The model of the device.
590
586
  #
591
- # Length Constraints: Maximum length of 128 characters.
587
+ # Constraints: Maximum length of 128 characters.
592
588
  #
593
589
  # @option params [String] :serial_number
594
590
  # The serial number of the device.
595
591
  #
596
- # Length Constraints: Maximum length of 128 characters.
592
+ # Constraints: Maximum length of 128 characters.
597
593
  #
598
594
  # @option params [Types::Location] :location
599
595
  # The location of the device.
@@ -671,7 +667,7 @@ module Aws::NetworkManager
671
667
  # @option params [String] :description
672
668
  # A description of the global network.
673
669
  #
674
- # Length Constraints: Maximum length of 256 characters.
670
+ # Constraints: Maximum length of 256 characters.
675
671
  #
676
672
  # @option params [Array<Types::Tag>] :tags
677
673
  # The tags to apply to the resource during creation.
@@ -720,14 +716,13 @@ module Aws::NetworkManager
720
716
  # @option params [String] :description
721
717
  # A description of the link.
722
718
  #
723
- # Length Constraints: Maximum length of 256 characters.
719
+ # Constraints: Maximum length of 256 characters.
724
720
  #
725
721
  # @option params [String] :type
726
722
  # The type of the link.
727
723
  #
728
- # Constraints: Cannot include the following characters: \| \\ ^
729
- #
730
- # Length Constraints: Maximum length of 128 characters.
724
+ # Constraints: Maximum length of 128 characters. Cannot include the
725
+ # following characters: \| \\ ^
731
726
  #
732
727
  # @option params [required, Types::Bandwidth] :bandwidth
733
728
  # The upload speed and download speed in Mbps.
@@ -735,9 +730,8 @@ module Aws::NetworkManager
735
730
  # @option params [String] :provider
736
731
  # The provider of the link.
737
732
  #
738
- # Constraints: Cannot include the following characters: \| \\ ^
739
- #
740
- # Length Constraints: Maximum length of 128 characters.
733
+ # Constraints: Maximum length of 128 characters. Cannot include the
734
+ # following characters: \| \\ ^
741
735
  #
742
736
  # @option params [required, String] :site_id
743
737
  # The ID of the site.
@@ -803,7 +797,7 @@ module Aws::NetworkManager
803
797
  # @option params [String] :description
804
798
  # A description of your site.
805
799
  #
806
- # Length Constraints: Maximum length of 256 characters.
800
+ # Constraints: Maximum length of 256 characters.
807
801
  #
808
802
  # @option params [Types::Location] :location
809
803
  # The site location. This information is used for visualization in the
@@ -1182,12 +1176,7 @@ module Aws::NetworkManager
1182
1176
  # The ID of the global network.
1183
1177
  #
1184
1178
  # @option params [required, String] :customer_gateway_arn
1185
- # The Amazon Resource Name (ARN) of the customer gateway. For more
1186
- # information, see [Resources Defined by Amazon EC2][1].
1187
- #
1188
- #
1189
- #
1190
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies
1179
+ # The Amazon Resource Name (ARN) of the customer gateway.
1191
1180
  #
1192
1181
  # @return [Types::DisassociateCustomerGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1193
1182
  #
@@ -1362,13 +1351,8 @@ module Aws::NetworkManager
1362
1351
  # The ID of the global network.
1363
1352
  #
1364
1353
  # @option params [Array<String>] :customer_gateway_arns
1365
- # One or more customer gateway Amazon Resource Names (ARNs). For more
1366
- # information, see [Resources Defined by Amazon EC2][1]. The maximum is
1367
- # 10.
1368
- #
1369
- #
1370
- #
1371
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies
1354
+ # One or more customer gateway Amazon Resource Names (ARNs). The maximum
1355
+ # is 10.
1372
1356
  #
1373
1357
  # @option params [Integer] :max_results
1374
1358
  # The maximum number of results to return.
@@ -1607,6 +1591,565 @@ module Aws::NetworkManager
1607
1591
  req.send_request(options)
1608
1592
  end
1609
1593
 
1594
+ # Gets the count of network resources, by resource type, for the
1595
+ # specified global network.
1596
+ #
1597
+ # @option params [required, String] :global_network_id
1598
+ # The ID of the global network.
1599
+ #
1600
+ # @option params [String] :resource_type
1601
+ # The resource type.
1602
+ #
1603
+ # The following are the supported resource types for Direct Connect:
1604
+ #
1605
+ # * `dxcon`
1606
+ #
1607
+ # * `dx-gateway`
1608
+ #
1609
+ # * `dx-vif`
1610
+ #
1611
+ # The following are the supported resource types for Network Manager:
1612
+ #
1613
+ # * `connection`
1614
+ #
1615
+ # * `device`
1616
+ #
1617
+ # * `link`
1618
+ #
1619
+ # * `site`
1620
+ #
1621
+ # The following are the supported resource types for Amazon VPC:
1622
+ #
1623
+ # * `customer-gateway`
1624
+ #
1625
+ # * `transit-gateway`
1626
+ #
1627
+ # * `transit-gateway-attachment`
1628
+ #
1629
+ # * `transit-gateway-connect-peer`
1630
+ #
1631
+ # * `transit-gateway-route-table`
1632
+ #
1633
+ # * `vpn-connection`
1634
+ #
1635
+ # @option params [Integer] :max_results
1636
+ # The maximum number of results to return.
1637
+ #
1638
+ # @option params [String] :next_token
1639
+ # The token for the next page of results.
1640
+ #
1641
+ # @return [Types::GetNetworkResourceCountsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1642
+ #
1643
+ # * {Types::GetNetworkResourceCountsResponse#network_resource_counts #network_resource_counts} => Array&lt;Types::NetworkResourceCount&gt;
1644
+ # * {Types::GetNetworkResourceCountsResponse#next_token #next_token} => String
1645
+ #
1646
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1647
+ #
1648
+ # @example Request syntax with placeholder values
1649
+ #
1650
+ # resp = client.get_network_resource_counts({
1651
+ # global_network_id: "String", # required
1652
+ # resource_type: "String",
1653
+ # max_results: 1,
1654
+ # next_token: "String",
1655
+ # })
1656
+ #
1657
+ # @example Response structure
1658
+ #
1659
+ # resp.network_resource_counts #=> Array
1660
+ # resp.network_resource_counts[0].resource_type #=> String
1661
+ # resp.network_resource_counts[0].count #=> Integer
1662
+ # resp.next_token #=> String
1663
+ #
1664
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetNetworkResourceCounts AWS API Documentation
1665
+ #
1666
+ # @overload get_network_resource_counts(params = {})
1667
+ # @param [Hash] params ({})
1668
+ def get_network_resource_counts(params = {}, options = {})
1669
+ req = build_request(:get_network_resource_counts, params)
1670
+ req.send_request(options)
1671
+ end
1672
+
1673
+ # Gets the network resource relationships for the specified global
1674
+ # network.
1675
+ #
1676
+ # @option params [required, String] :global_network_id
1677
+ # The ID of the global network.
1678
+ #
1679
+ # @option params [String] :registered_gateway_arn
1680
+ # The ARN of the registered gateway.
1681
+ #
1682
+ # @option params [String] :aws_region
1683
+ # The Amazon Web Services Region.
1684
+ #
1685
+ # @option params [String] :account_id
1686
+ # The Amazon Web Services account ID.
1687
+ #
1688
+ # @option params [String] :resource_type
1689
+ # The resource type.
1690
+ #
1691
+ # The following are the supported resource types for Direct Connect:
1692
+ #
1693
+ # * `dxcon`
1694
+ #
1695
+ # * `dx-gateway`
1696
+ #
1697
+ # * `dx-vif`
1698
+ #
1699
+ # The following are the supported resource types for Network Manager:
1700
+ #
1701
+ # * `connection`
1702
+ #
1703
+ # * `device`
1704
+ #
1705
+ # * `link`
1706
+ #
1707
+ # * `site`
1708
+ #
1709
+ # The following are the supported resource types for Amazon VPC:
1710
+ #
1711
+ # * `customer-gateway`
1712
+ #
1713
+ # * `transit-gateway`
1714
+ #
1715
+ # * `transit-gateway-attachment`
1716
+ #
1717
+ # * `transit-gateway-connect-peer`
1718
+ #
1719
+ # * `transit-gateway-route-table`
1720
+ #
1721
+ # * `vpn-connection`
1722
+ #
1723
+ # @option params [String] :resource_arn
1724
+ # The ARN of the gateway.
1725
+ #
1726
+ # @option params [Integer] :max_results
1727
+ # The maximum number of results to return.
1728
+ #
1729
+ # @option params [String] :next_token
1730
+ # The token for the next page of results.
1731
+ #
1732
+ # @return [Types::GetNetworkResourceRelationshipsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1733
+ #
1734
+ # * {Types::GetNetworkResourceRelationshipsResponse#relationships #relationships} => Array&lt;Types::Relationship&gt;
1735
+ # * {Types::GetNetworkResourceRelationshipsResponse#next_token #next_token} => String
1736
+ #
1737
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1738
+ #
1739
+ # @example Request syntax with placeholder values
1740
+ #
1741
+ # resp = client.get_network_resource_relationships({
1742
+ # global_network_id: "String", # required
1743
+ # registered_gateway_arn: "String",
1744
+ # aws_region: "String",
1745
+ # account_id: "String",
1746
+ # resource_type: "String",
1747
+ # resource_arn: "String",
1748
+ # max_results: 1,
1749
+ # next_token: "String",
1750
+ # })
1751
+ #
1752
+ # @example Response structure
1753
+ #
1754
+ # resp.relationships #=> Array
1755
+ # resp.relationships[0].from #=> String
1756
+ # resp.relationships[0].to #=> String
1757
+ # resp.next_token #=> String
1758
+ #
1759
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetNetworkResourceRelationships AWS API Documentation
1760
+ #
1761
+ # @overload get_network_resource_relationships(params = {})
1762
+ # @param [Hash] params ({})
1763
+ def get_network_resource_relationships(params = {}, options = {})
1764
+ req = build_request(:get_network_resource_relationships, params)
1765
+ req.send_request(options)
1766
+ end
1767
+
1768
+ # Describes the network resources for the specified global network.
1769
+ #
1770
+ # The results include information from the corresponding Describe call
1771
+ # for the resource, minus any sensitive information such as pre-shared
1772
+ # keys.
1773
+ #
1774
+ # @option params [required, String] :global_network_id
1775
+ # The ID of the global network.
1776
+ #
1777
+ # @option params [String] :registered_gateway_arn
1778
+ # The ARN of the gateway.
1779
+ #
1780
+ # @option params [String] :aws_region
1781
+ # The Amazon Web Services Region.
1782
+ #
1783
+ # @option params [String] :account_id
1784
+ # The Amazon Web Services account ID.
1785
+ #
1786
+ # @option params [String] :resource_type
1787
+ # The resource type.
1788
+ #
1789
+ # The following are the supported resource types for Direct Connect:
1790
+ #
1791
+ # * `dxcon` - The definition model is [Connection][1].
1792
+ #
1793
+ # * `dx-gateway` - The definition model is [DirectConnectGateway][2].
1794
+ #
1795
+ # * `dx-vif` - The definition model is [VirtualInterface][3].
1796
+ #
1797
+ # The following are the supported resource types for Network Manager:
1798
+ #
1799
+ # * `connection` - The definition model is [Connection][4].
1800
+ #
1801
+ # * `device` - The definition model is [Device][5].
1802
+ #
1803
+ # * `link` - The definition model is [Link][6].
1804
+ #
1805
+ # * `site` - The definition model is [Site][7].
1806
+ #
1807
+ # The following are the supported resource types for Amazon VPC:
1808
+ #
1809
+ # * `customer-gateway` - The definition model is [CustomerGateway][8].
1810
+ #
1811
+ # * `transit-gateway` - The definition model is [TransitGateway][9].
1812
+ #
1813
+ # * `transit-gateway-attachment` - The definition model is
1814
+ # [TransitGatewayAttachment][10].
1815
+ #
1816
+ # * `transit-gateway-connect-peer` - The definition model is
1817
+ # [TransitGatewayConnectPeer][11].
1818
+ #
1819
+ # * `transit-gateway-route-table` - The definition model is
1820
+ # [TransitGatewayRouteTable][12].
1821
+ #
1822
+ # * `vpn-connection` - The definition model is [VpnConnection][13].
1823
+ #
1824
+ #
1825
+ #
1826
+ # [1]: https://docs.aws.amazon.com/directconnect/latest/APIReference/API_Connection.html
1827
+ # [2]: https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DirectConnectGateway.html
1828
+ # [3]: https://docs.aws.amazon.com/directconnect/latest/APIReference/API_VirtualInterface.html
1829
+ # [4]: https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_Connection.html
1830
+ # [5]: https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_Device.html
1831
+ # [6]: https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_Link.html
1832
+ # [7]: https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_Site.html
1833
+ # [8]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CustomerGateway.html
1834
+ # [9]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TransitGateway.html
1835
+ # [10]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TransitGatewayAttachment.html
1836
+ # [11]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TransitGatewayConnectPeer.html
1837
+ # [12]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TransitGatewayRouteTable.html
1838
+ # [13]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VpnConnection.html
1839
+ #
1840
+ # @option params [String] :resource_arn
1841
+ # The ARN of the resource.
1842
+ #
1843
+ # @option params [Integer] :max_results
1844
+ # The maximum number of results to return.
1845
+ #
1846
+ # @option params [String] :next_token
1847
+ # The token for the next page of results.
1848
+ #
1849
+ # @return [Types::GetNetworkResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1850
+ #
1851
+ # * {Types::GetNetworkResourcesResponse#network_resources #network_resources} => Array&lt;Types::NetworkResource&gt;
1852
+ # * {Types::GetNetworkResourcesResponse#next_token #next_token} => String
1853
+ #
1854
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1855
+ #
1856
+ # @example Request syntax with placeholder values
1857
+ #
1858
+ # resp = client.get_network_resources({
1859
+ # global_network_id: "String", # required
1860
+ # registered_gateway_arn: "String",
1861
+ # aws_region: "String",
1862
+ # account_id: "String",
1863
+ # resource_type: "String",
1864
+ # resource_arn: "String",
1865
+ # max_results: 1,
1866
+ # next_token: "String",
1867
+ # })
1868
+ #
1869
+ # @example Response structure
1870
+ #
1871
+ # resp.network_resources #=> Array
1872
+ # resp.network_resources[0].registered_gateway_arn #=> String
1873
+ # resp.network_resources[0].aws_region #=> String
1874
+ # resp.network_resources[0].account_id #=> String
1875
+ # resp.network_resources[0].resource_type #=> String
1876
+ # resp.network_resources[0].resource_id #=> String
1877
+ # resp.network_resources[0].resource_arn #=> String
1878
+ # resp.network_resources[0].definition #=> String
1879
+ # resp.network_resources[0].definition_timestamp #=> Time
1880
+ # resp.network_resources[0].tags #=> Array
1881
+ # resp.network_resources[0].tags[0].key #=> String
1882
+ # resp.network_resources[0].tags[0].value #=> String
1883
+ # resp.network_resources[0].metadata #=> Hash
1884
+ # resp.network_resources[0].metadata["NetworkResourceMetadataKey"] #=> String
1885
+ # resp.next_token #=> String
1886
+ #
1887
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetNetworkResources AWS API Documentation
1888
+ #
1889
+ # @overload get_network_resources(params = {})
1890
+ # @param [Hash] params ({})
1891
+ def get_network_resources(params = {}, options = {})
1892
+ req = build_request(:get_network_resources, params)
1893
+ req.send_request(options)
1894
+ end
1895
+
1896
+ # Gets the network routes of the specified global network.
1897
+ #
1898
+ # @option params [required, String] :global_network_id
1899
+ # The ID of the global network.
1900
+ #
1901
+ # @option params [required, Types::RouteTableIdentifier] :route_table_identifier
1902
+ # The ID of the route table.
1903
+ #
1904
+ # @option params [Array<String>] :exact_cidr_matches
1905
+ # An exact CIDR block.
1906
+ #
1907
+ # @option params [Array<String>] :longest_prefix_matches
1908
+ # The most specific route that matches the traffic (longest prefix
1909
+ # match).
1910
+ #
1911
+ # @option params [Array<String>] :subnet_of_matches
1912
+ # The routes with a subnet that match the specified CIDR filter.
1913
+ #
1914
+ # @option params [Array<String>] :supernet_of_matches
1915
+ # The routes with a CIDR that encompasses the CIDR filter. Example: If
1916
+ # you specify 10.0.1.0/30, then the result returns 10.0.1.0/29.
1917
+ #
1918
+ # @option params [Array<String>] :prefix_list_ids
1919
+ # The IDs of the prefix lists.
1920
+ #
1921
+ # @option params [Array<String>] :states
1922
+ # The route states.
1923
+ #
1924
+ # @option params [Array<String>] :types
1925
+ # The route types.
1926
+ #
1927
+ # @option params [Hash<String,Array>] :destination_filters
1928
+ # Filter by route table destination. Possible Values:
1929
+ # TRANSIT\_GATEWAY\_ATTACHMENT\_ID, RESOURCE\_ID, or RESOURCE\_TYPE.
1930
+ #
1931
+ # @return [Types::GetNetworkRoutesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1932
+ #
1933
+ # * {Types::GetNetworkRoutesResponse#route_table_arn #route_table_arn} => String
1934
+ # * {Types::GetNetworkRoutesResponse#route_table_type #route_table_type} => String
1935
+ # * {Types::GetNetworkRoutesResponse#route_table_timestamp #route_table_timestamp} => Time
1936
+ # * {Types::GetNetworkRoutesResponse#network_routes #network_routes} => Array&lt;Types::NetworkRoute&gt;
1937
+ #
1938
+ # @example Request syntax with placeholder values
1939
+ #
1940
+ # resp = client.get_network_routes({
1941
+ # global_network_id: "String", # required
1942
+ # route_table_identifier: { # required
1943
+ # transit_gateway_route_table_arn: "String",
1944
+ # },
1945
+ # exact_cidr_matches: ["String"],
1946
+ # longest_prefix_matches: ["String"],
1947
+ # subnet_of_matches: ["String"],
1948
+ # supernet_of_matches: ["String"],
1949
+ # prefix_list_ids: ["String"],
1950
+ # states: ["ACTIVE"], # accepts ACTIVE, BLACKHOLE
1951
+ # types: ["PROPAGATED"], # accepts PROPAGATED, STATIC
1952
+ # destination_filters: {
1953
+ # "FilterName" => ["FilterValue"],
1954
+ # },
1955
+ # })
1956
+ #
1957
+ # @example Response structure
1958
+ #
1959
+ # resp.route_table_arn #=> String
1960
+ # resp.route_table_type #=> String, one of "TRANSIT_GATEWAY_ROUTE_TABLE"
1961
+ # resp.route_table_timestamp #=> Time
1962
+ # resp.network_routes #=> Array
1963
+ # resp.network_routes[0].destination_cidr_block #=> String
1964
+ # resp.network_routes[0].destinations #=> Array
1965
+ # resp.network_routes[0].destinations[0].transit_gateway_attachment_id #=> String
1966
+ # resp.network_routes[0].destinations[0].resource_type #=> String
1967
+ # resp.network_routes[0].destinations[0].resource_id #=> String
1968
+ # resp.network_routes[0].prefix_list_id #=> String
1969
+ # resp.network_routes[0].state #=> String, one of "ACTIVE", "BLACKHOLE"
1970
+ # resp.network_routes[0].type #=> String, one of "PROPAGATED", "STATIC"
1971
+ #
1972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetNetworkRoutes AWS API Documentation
1973
+ #
1974
+ # @overload get_network_routes(params = {})
1975
+ # @param [Hash] params ({})
1976
+ def get_network_routes(params = {}, options = {})
1977
+ req = build_request(:get_network_routes, params)
1978
+ req.send_request(options)
1979
+ end
1980
+
1981
+ # Gets the network telemetry of the specified global network.
1982
+ #
1983
+ # @option params [required, String] :global_network_id
1984
+ # The ID of the global network.
1985
+ #
1986
+ # @option params [String] :registered_gateway_arn
1987
+ # The ARN of the gateway.
1988
+ #
1989
+ # @option params [String] :aws_region
1990
+ # The Amazon Web Services Region.
1991
+ #
1992
+ # @option params [String] :account_id
1993
+ # The Amazon Web Services account ID.
1994
+ #
1995
+ # @option params [String] :resource_type
1996
+ # The resource type.
1997
+ #
1998
+ # The following are the supported resource types for Direct Connect:
1999
+ #
2000
+ # * `dxcon`
2001
+ #
2002
+ # * `dx-gateway`
2003
+ #
2004
+ # * `dx-vif`
2005
+ #
2006
+ # The following are the supported resource types for Network Manager:
2007
+ #
2008
+ # * `connection`
2009
+ #
2010
+ # * `device`
2011
+ #
2012
+ # * `link`
2013
+ #
2014
+ # * `site`
2015
+ #
2016
+ # The following are the supported resource types for Amazon VPC:
2017
+ #
2018
+ # * `customer-gateway`
2019
+ #
2020
+ # * `transit-gateway`
2021
+ #
2022
+ # * `transit-gateway-attachment`
2023
+ #
2024
+ # * `transit-gateway-connect-peer`
2025
+ #
2026
+ # * `transit-gateway-route-table`
2027
+ #
2028
+ # * `vpn-connection`
2029
+ #
2030
+ # @option params [String] :resource_arn
2031
+ # The ARN of the resource.
2032
+ #
2033
+ # @option params [Integer] :max_results
2034
+ # The maximum number of results to return.
2035
+ #
2036
+ # @option params [String] :next_token
2037
+ # The token for the next page of results.
2038
+ #
2039
+ # @return [Types::GetNetworkTelemetryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2040
+ #
2041
+ # * {Types::GetNetworkTelemetryResponse#network_telemetry #network_telemetry} => Array&lt;Types::NetworkTelemetry&gt;
2042
+ # * {Types::GetNetworkTelemetryResponse#next_token #next_token} => String
2043
+ #
2044
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2045
+ #
2046
+ # @example Request syntax with placeholder values
2047
+ #
2048
+ # resp = client.get_network_telemetry({
2049
+ # global_network_id: "String", # required
2050
+ # registered_gateway_arn: "String",
2051
+ # aws_region: "String",
2052
+ # account_id: "String",
2053
+ # resource_type: "String",
2054
+ # resource_arn: "String",
2055
+ # max_results: 1,
2056
+ # next_token: "String",
2057
+ # })
2058
+ #
2059
+ # @example Response structure
2060
+ #
2061
+ # resp.network_telemetry #=> Array
2062
+ # resp.network_telemetry[0].registered_gateway_arn #=> String
2063
+ # resp.network_telemetry[0].aws_region #=> String
2064
+ # resp.network_telemetry[0].account_id #=> String
2065
+ # resp.network_telemetry[0].resource_type #=> String
2066
+ # resp.network_telemetry[0].resource_id #=> String
2067
+ # resp.network_telemetry[0].resource_arn #=> String
2068
+ # resp.network_telemetry[0].address #=> String
2069
+ # resp.network_telemetry[0].health.type #=> String, one of "BGP", "IPSEC"
2070
+ # resp.network_telemetry[0].health.status #=> String, one of "UP", "DOWN"
2071
+ # resp.network_telemetry[0].health.timestamp #=> Time
2072
+ # resp.next_token #=> String
2073
+ #
2074
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetNetworkTelemetry AWS API Documentation
2075
+ #
2076
+ # @overload get_network_telemetry(params = {})
2077
+ # @param [Hash] params ({})
2078
+ def get_network_telemetry(params = {}, options = {})
2079
+ req = build_request(:get_network_telemetry, params)
2080
+ req.send_request(options)
2081
+ end
2082
+
2083
+ # Gets information about the specified route analysis.
2084
+ #
2085
+ # @option params [required, String] :global_network_id
2086
+ # The ID of the global network.
2087
+ #
2088
+ # @option params [required, String] :route_analysis_id
2089
+ # The ID of the route analysis.
2090
+ #
2091
+ # @return [Types::GetRouteAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2092
+ #
2093
+ # * {Types::GetRouteAnalysisResponse#route_analysis #route_analysis} => Types::RouteAnalysis
2094
+ #
2095
+ # @example Request syntax with placeholder values
2096
+ #
2097
+ # resp = client.get_route_analysis({
2098
+ # global_network_id: "String", # required
2099
+ # route_analysis_id: "String", # required
2100
+ # })
2101
+ #
2102
+ # @example Response structure
2103
+ #
2104
+ # resp.route_analysis.global_network_id #=> String
2105
+ # resp.route_analysis.owner_account_id #=> String
2106
+ # resp.route_analysis.route_analysis_id #=> String
2107
+ # resp.route_analysis.start_timestamp #=> Time
2108
+ # resp.route_analysis.status #=> String, one of "RUNNING", "COMPLETED", "FAILED"
2109
+ # resp.route_analysis.source.transit_gateway_attachment_arn #=> String
2110
+ # resp.route_analysis.source.transit_gateway_arn #=> String
2111
+ # resp.route_analysis.source.ip_address #=> String
2112
+ # resp.route_analysis.destination.transit_gateway_attachment_arn #=> String
2113
+ # resp.route_analysis.destination.transit_gateway_arn #=> String
2114
+ # resp.route_analysis.destination.ip_address #=> String
2115
+ # resp.route_analysis.include_return_path #=> Boolean
2116
+ # resp.route_analysis.use_middleboxes #=> Boolean
2117
+ # resp.route_analysis.forward_path.completion_status.result_code #=> String, one of "CONNECTED", "NOT_CONNECTED"
2118
+ # resp.route_analysis.forward_path.completion_status.reason_code #=> String, one of "TRANSIT_GATEWAY_ATTACHMENT_NOT_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_NOT_IN_TRANSIT_GATEWAY", "CYCLIC_PATH_DETECTED", "TRANSIT_GATEWAY_ATTACHMENT_STABLE_ROUTE_TABLE_NOT_FOUND", "ROUTE_NOT_FOUND", "BLACKHOLE_ROUTE_FOR_DESTINATION_FOUND", "INACTIVE_ROUTE_FOR_DESTINATION_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_ATTACH_ARN_NO_MATCH", "MAX_HOPS_EXCEEDED", "POSSIBLE_MIDDLEBOX", "NO_DESTINATION_ARN_PROVIDED"
2119
+ # resp.route_analysis.forward_path.completion_status.reason_context #=> Hash
2120
+ # resp.route_analysis.forward_path.completion_status.reason_context["ReasonContextKey"] #=> String
2121
+ # resp.route_analysis.forward_path.path #=> Array
2122
+ # resp.route_analysis.forward_path.path[0].sequence #=> Integer
2123
+ # resp.route_analysis.forward_path.path[0].resource.registered_gateway_arn #=> String
2124
+ # resp.route_analysis.forward_path.path[0].resource.resource_arn #=> String
2125
+ # resp.route_analysis.forward_path.path[0].resource.resource_type #=> String
2126
+ # resp.route_analysis.forward_path.path[0].resource.definition #=> String
2127
+ # resp.route_analysis.forward_path.path[0].resource.name_tag #=> String
2128
+ # resp.route_analysis.forward_path.path[0].resource.is_middlebox #=> Boolean
2129
+ # resp.route_analysis.forward_path.path[0].destination_cidr_block #=> String
2130
+ # resp.route_analysis.return_path.completion_status.result_code #=> String, one of "CONNECTED", "NOT_CONNECTED"
2131
+ # resp.route_analysis.return_path.completion_status.reason_code #=> String, one of "TRANSIT_GATEWAY_ATTACHMENT_NOT_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_NOT_IN_TRANSIT_GATEWAY", "CYCLIC_PATH_DETECTED", "TRANSIT_GATEWAY_ATTACHMENT_STABLE_ROUTE_TABLE_NOT_FOUND", "ROUTE_NOT_FOUND", "BLACKHOLE_ROUTE_FOR_DESTINATION_FOUND", "INACTIVE_ROUTE_FOR_DESTINATION_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_ATTACH_ARN_NO_MATCH", "MAX_HOPS_EXCEEDED", "POSSIBLE_MIDDLEBOX", "NO_DESTINATION_ARN_PROVIDED"
2132
+ # resp.route_analysis.return_path.completion_status.reason_context #=> Hash
2133
+ # resp.route_analysis.return_path.completion_status.reason_context["ReasonContextKey"] #=> String
2134
+ # resp.route_analysis.return_path.path #=> Array
2135
+ # resp.route_analysis.return_path.path[0].sequence #=> Integer
2136
+ # resp.route_analysis.return_path.path[0].resource.registered_gateway_arn #=> String
2137
+ # resp.route_analysis.return_path.path[0].resource.resource_arn #=> String
2138
+ # resp.route_analysis.return_path.path[0].resource.resource_type #=> String
2139
+ # resp.route_analysis.return_path.path[0].resource.definition #=> String
2140
+ # resp.route_analysis.return_path.path[0].resource.name_tag #=> String
2141
+ # resp.route_analysis.return_path.path[0].resource.is_middlebox #=> Boolean
2142
+ # resp.route_analysis.return_path.path[0].destination_cidr_block #=> String
2143
+ #
2144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetRouteAnalysis AWS API Documentation
2145
+ #
2146
+ # @overload get_route_analysis(params = {})
2147
+ # @param [Hash] params ({})
2148
+ def get_route_analysis(params = {}, options = {})
2149
+ req = build_request(:get_route_analysis, params)
2150
+ req.send_request(options)
2151
+ end
2152
+
1610
2153
  # Gets information about one or more of your sites in a global network.
1611
2154
  #
1612
2155
  # @option params [required, String] :global_network_id
@@ -1794,20 +2337,15 @@ module Aws::NetworkManager
1794
2337
  end
1795
2338
 
1796
2339
  # Registers a transit gateway in your global network. The transit
1797
- # gateway can be in any AWS Region, but it must be owned by the same AWS
1798
- # account that owns the global network. You cannot register a transit
1799
- # gateway in more than one global network.
2340
+ # gateway can be in any Amazon Web Services Region, but it must be owned
2341
+ # by the same Amazon Web Services account that owns the global network.
2342
+ # You cannot register a transit gateway in more than one global network.
1800
2343
  #
1801
2344
  # @option params [required, String] :global_network_id
1802
2345
  # The ID of the global network.
1803
2346
  #
1804
2347
  # @option params [required, String] :transit_gateway_arn
1805
- # The Amazon Resource Name (ARN) of the transit gateway. For more
1806
- # information, see [Resources Defined by Amazon EC2][1].
1807
- #
1808
- #
1809
- #
1810
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies
2348
+ # The Amazon Resource Name (ARN) of the transit gateway.
1811
2349
  #
1812
2350
  # @return [Types::RegisterTransitGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1813
2351
  #
@@ -1836,6 +2374,100 @@ module Aws::NetworkManager
1836
2374
  req.send_request(options)
1837
2375
  end
1838
2376
 
2377
+ # Starts analyzing the routing path between the specified source and
2378
+ # destination. For more information, see [Route Analyzer][1].
2379
+ #
2380
+ #
2381
+ #
2382
+ # [1]: https://docs.aws.amazon.com/vpc/latest/tgw/route-analyzer.html
2383
+ #
2384
+ # @option params [required, String] :global_network_id
2385
+ # The ID of the global network.
2386
+ #
2387
+ # @option params [required, Types::RouteAnalysisEndpointOptionsSpecification] :source
2388
+ # The source from which traffic originates.
2389
+ #
2390
+ # @option params [required, Types::RouteAnalysisEndpointOptionsSpecification] :destination
2391
+ # The destination.
2392
+ #
2393
+ # @option params [Boolean] :include_return_path
2394
+ # Indicates whether to analyze the return path. The default is `false`.
2395
+ #
2396
+ # @option params [Boolean] :use_middleboxes
2397
+ # Indicates whether to include the location of middlebox appliances in
2398
+ # the route analysis. The default is `false`.
2399
+ #
2400
+ # @return [Types::StartRouteAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2401
+ #
2402
+ # * {Types::StartRouteAnalysisResponse#route_analysis #route_analysis} => Types::RouteAnalysis
2403
+ #
2404
+ # @example Request syntax with placeholder values
2405
+ #
2406
+ # resp = client.start_route_analysis({
2407
+ # global_network_id: "String", # required
2408
+ # source: { # required
2409
+ # transit_gateway_attachment_arn: "String",
2410
+ # ip_address: "String",
2411
+ # },
2412
+ # destination: { # required
2413
+ # transit_gateway_attachment_arn: "String",
2414
+ # ip_address: "String",
2415
+ # },
2416
+ # include_return_path: false,
2417
+ # use_middleboxes: false,
2418
+ # })
2419
+ #
2420
+ # @example Response structure
2421
+ #
2422
+ # resp.route_analysis.global_network_id #=> String
2423
+ # resp.route_analysis.owner_account_id #=> String
2424
+ # resp.route_analysis.route_analysis_id #=> String
2425
+ # resp.route_analysis.start_timestamp #=> Time
2426
+ # resp.route_analysis.status #=> String, one of "RUNNING", "COMPLETED", "FAILED"
2427
+ # resp.route_analysis.source.transit_gateway_attachment_arn #=> String
2428
+ # resp.route_analysis.source.transit_gateway_arn #=> String
2429
+ # resp.route_analysis.source.ip_address #=> String
2430
+ # resp.route_analysis.destination.transit_gateway_attachment_arn #=> String
2431
+ # resp.route_analysis.destination.transit_gateway_arn #=> String
2432
+ # resp.route_analysis.destination.ip_address #=> String
2433
+ # resp.route_analysis.include_return_path #=> Boolean
2434
+ # resp.route_analysis.use_middleboxes #=> Boolean
2435
+ # resp.route_analysis.forward_path.completion_status.result_code #=> String, one of "CONNECTED", "NOT_CONNECTED"
2436
+ # resp.route_analysis.forward_path.completion_status.reason_code #=> String, one of "TRANSIT_GATEWAY_ATTACHMENT_NOT_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_NOT_IN_TRANSIT_GATEWAY", "CYCLIC_PATH_DETECTED", "TRANSIT_GATEWAY_ATTACHMENT_STABLE_ROUTE_TABLE_NOT_FOUND", "ROUTE_NOT_FOUND", "BLACKHOLE_ROUTE_FOR_DESTINATION_FOUND", "INACTIVE_ROUTE_FOR_DESTINATION_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_ATTACH_ARN_NO_MATCH", "MAX_HOPS_EXCEEDED", "POSSIBLE_MIDDLEBOX", "NO_DESTINATION_ARN_PROVIDED"
2437
+ # resp.route_analysis.forward_path.completion_status.reason_context #=> Hash
2438
+ # resp.route_analysis.forward_path.completion_status.reason_context["ReasonContextKey"] #=> String
2439
+ # resp.route_analysis.forward_path.path #=> Array
2440
+ # resp.route_analysis.forward_path.path[0].sequence #=> Integer
2441
+ # resp.route_analysis.forward_path.path[0].resource.registered_gateway_arn #=> String
2442
+ # resp.route_analysis.forward_path.path[0].resource.resource_arn #=> String
2443
+ # resp.route_analysis.forward_path.path[0].resource.resource_type #=> String
2444
+ # resp.route_analysis.forward_path.path[0].resource.definition #=> String
2445
+ # resp.route_analysis.forward_path.path[0].resource.name_tag #=> String
2446
+ # resp.route_analysis.forward_path.path[0].resource.is_middlebox #=> Boolean
2447
+ # resp.route_analysis.forward_path.path[0].destination_cidr_block #=> String
2448
+ # resp.route_analysis.return_path.completion_status.result_code #=> String, one of "CONNECTED", "NOT_CONNECTED"
2449
+ # resp.route_analysis.return_path.completion_status.reason_code #=> String, one of "TRANSIT_GATEWAY_ATTACHMENT_NOT_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_NOT_IN_TRANSIT_GATEWAY", "CYCLIC_PATH_DETECTED", "TRANSIT_GATEWAY_ATTACHMENT_STABLE_ROUTE_TABLE_NOT_FOUND", "ROUTE_NOT_FOUND", "BLACKHOLE_ROUTE_FOR_DESTINATION_FOUND", "INACTIVE_ROUTE_FOR_DESTINATION_FOUND", "TRANSIT_GATEWAY_ATTACHMENT_ATTACH_ARN_NO_MATCH", "MAX_HOPS_EXCEEDED", "POSSIBLE_MIDDLEBOX", "NO_DESTINATION_ARN_PROVIDED"
2450
+ # resp.route_analysis.return_path.completion_status.reason_context #=> Hash
2451
+ # resp.route_analysis.return_path.completion_status.reason_context["ReasonContextKey"] #=> String
2452
+ # resp.route_analysis.return_path.path #=> Array
2453
+ # resp.route_analysis.return_path.path[0].sequence #=> Integer
2454
+ # resp.route_analysis.return_path.path[0].resource.registered_gateway_arn #=> String
2455
+ # resp.route_analysis.return_path.path[0].resource.resource_arn #=> String
2456
+ # resp.route_analysis.return_path.path[0].resource.resource_type #=> String
2457
+ # resp.route_analysis.return_path.path[0].resource.definition #=> String
2458
+ # resp.route_analysis.return_path.path[0].resource.name_tag #=> String
2459
+ # resp.route_analysis.return_path.path[0].resource.is_middlebox #=> Boolean
2460
+ # resp.route_analysis.return_path.path[0].destination_cidr_block #=> String
2461
+ #
2462
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/StartRouteAnalysis AWS API Documentation
2463
+ #
2464
+ # @overload start_route_analysis(params = {})
2465
+ # @param [Hash] params ({})
2466
+ def start_route_analysis(params = {}, options = {})
2467
+ req = build_request(:start_route_analysis, params)
2468
+ req.send_request(options)
2469
+ end
2470
+
1839
2471
  # Tags a specified resource.
1840
2472
  #
1841
2473
  # @option params [required, String] :resource_arn
@@ -1962,12 +2594,13 @@ module Aws::NetworkManager
1962
2594
  # The ID of the device.
1963
2595
  #
1964
2596
  # @option params [Types::AWSLocation] :aws_location
1965
- # The AWS location of the device.
2597
+ # The Amazon Web Services location of the device, if applicable. For an
2598
+ # on-premises device, you can omit this parameter.
1966
2599
  #
1967
2600
  # @option params [String] :description
1968
2601
  # A description of the device.
1969
2602
  #
1970
- # Length Constraints: Maximum length of 256 characters.
2603
+ # Constraints: Maximum length of 256 characters.
1971
2604
  #
1972
2605
  # @option params [String] :type
1973
2606
  # The type of the device.
@@ -1975,17 +2608,17 @@ module Aws::NetworkManager
1975
2608
  # @option params [String] :vendor
1976
2609
  # The vendor of the device.
1977
2610
  #
1978
- # Length Constraints: Maximum length of 128 characters.
2611
+ # Constraints: Maximum length of 128 characters.
1979
2612
  #
1980
2613
  # @option params [String] :model
1981
2614
  # The model of the device.
1982
2615
  #
1983
- # Length Constraints: Maximum length of 128 characters.
2616
+ # Constraints: Maximum length of 128 characters.
1984
2617
  #
1985
2618
  # @option params [String] :serial_number
1986
2619
  # The serial number of the device.
1987
2620
  #
1988
- # Length Constraints: Maximum length of 128 characters.
2621
+ # Constraints: Maximum length of 128 characters.
1989
2622
  #
1990
2623
  # @option params [Types::Location] :location
1991
2624
  # Describes a location.
@@ -2059,7 +2692,7 @@ module Aws::NetworkManager
2059
2692
  # @option params [String] :description
2060
2693
  # A description of the global network.
2061
2694
  #
2062
- # Length Constraints: Maximum length of 256 characters.
2695
+ # Constraints: Maximum length of 256 characters.
2063
2696
  #
2064
2697
  # @return [Types::UpdateGlobalNetworkResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2065
2698
  #
@@ -2104,12 +2737,12 @@ module Aws::NetworkManager
2104
2737
  # @option params [String] :description
2105
2738
  # A description of the link.
2106
2739
  #
2107
- # Length Constraints: Maximum length of 256 characters.
2740
+ # Constraints: Maximum length of 256 characters.
2108
2741
  #
2109
2742
  # @option params [String] :type
2110
2743
  # The type of the link.
2111
2744
  #
2112
- # Length Constraints: Maximum length of 128 characters.
2745
+ # Constraints: Maximum length of 128 characters.
2113
2746
  #
2114
2747
  # @option params [Types::Bandwidth] :bandwidth
2115
2748
  # The upload and download speed in Mbps.
@@ -2117,7 +2750,7 @@ module Aws::NetworkManager
2117
2750
  # @option params [String] :provider
2118
2751
  # The provider of the link.
2119
2752
  #
2120
- # Length Constraints: Maximum length of 128 characters.
2753
+ # Constraints: Maximum length of 128 characters.
2121
2754
  #
2122
2755
  # @return [Types::UpdateLinkResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2123
2756
  #
@@ -2163,6 +2796,47 @@ module Aws::NetworkManager
2163
2796
  req.send_request(options)
2164
2797
  end
2165
2798
 
2799
+ # Updates the resource metadata for the specified global network.
2800
+ #
2801
+ # @option params [required, String] :global_network_id
2802
+ # The ID of the global network.
2803
+ #
2804
+ # @option params [required, String] :resource_arn
2805
+ # The ARN of the resource.
2806
+ #
2807
+ # @option params [required, Hash<String,String>] :metadata
2808
+ # The resource metadata.
2809
+ #
2810
+ # @return [Types::UpdateNetworkResourceMetadataResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2811
+ #
2812
+ # * {Types::UpdateNetworkResourceMetadataResponse#resource_arn #resource_arn} => String
2813
+ # * {Types::UpdateNetworkResourceMetadataResponse#metadata #metadata} => Hash&lt;String,String&gt;
2814
+ #
2815
+ # @example Request syntax with placeholder values
2816
+ #
2817
+ # resp = client.update_network_resource_metadata({
2818
+ # global_network_id: "String", # required
2819
+ # resource_arn: "String", # required
2820
+ # metadata: { # required
2821
+ # "NetworkResourceMetadataKey" => "NetworkResourceMetadataValue",
2822
+ # },
2823
+ # })
2824
+ #
2825
+ # @example Response structure
2826
+ #
2827
+ # resp.resource_arn #=> String
2828
+ # resp.metadata #=> Hash
2829
+ # resp.metadata["NetworkResourceMetadataKey"] #=> String
2830
+ #
2831
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UpdateNetworkResourceMetadata AWS API Documentation
2832
+ #
2833
+ # @overload update_network_resource_metadata(params = {})
2834
+ # @param [Hash] params ({})
2835
+ def update_network_resource_metadata(params = {}, options = {})
2836
+ req = build_request(:update_network_resource_metadata, params)
2837
+ req.send_request(options)
2838
+ end
2839
+
2166
2840
  # Updates the information for an existing site. To remove information
2167
2841
  # for any of the parameters, specify an empty string.
2168
2842
  #
@@ -2175,7 +2849,7 @@ module Aws::NetworkManager
2175
2849
  # @option params [String] :description
2176
2850
  # A description of your site.
2177
2851
  #
2178
- # Length Constraints: Maximum length of 256 characters.
2852
+ # Constraints: Maximum length of 256 characters.
2179
2853
  #
2180
2854
  # @option params [Types::Location] :location
2181
2855
  # The site location:
@@ -2240,7 +2914,7 @@ module Aws::NetworkManager
2240
2914
  params: params,
2241
2915
  config: config)
2242
2916
  context[:gem_name] = 'aws-sdk-networkmanager'
2243
- context[:gem_version] = '1.15.0'
2917
+ context[:gem_version] = '1.16.0'
2244
2918
  Seahorse::Client::Request.new(handlers, context)
2245
2919
  end
2246
2920