@azure/arm-cosmosdbforpostgresql 1.0.0-beta.1

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.
Files changed (282) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +109 -0
  4. package/dist/index.js +5097 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.min.js +1 -0
  7. package/dist/index.min.js.map +1 -0
  8. package/dist-esm/samples-dev/clustersCheckNameAvailabilitySample.d.ts +2 -0
  9. package/dist-esm/samples-dev/clustersCheckNameAvailabilitySample.d.ts.map +1 -0
  10. package/dist-esm/samples-dev/clustersCheckNameAvailabilitySample.js +41 -0
  11. package/dist-esm/samples-dev/clustersCheckNameAvailabilitySample.js.map +1 -0
  12. package/dist-esm/samples-dev/clustersCreateSample.d.ts +2 -0
  13. package/dist-esm/samples-dev/clustersCreateSample.d.ts.map +1 -0
  14. package/dist-esm/samples-dev/clustersCreateSample.js +107 -0
  15. package/dist-esm/samples-dev/clustersCreateSample.js.map +1 -0
  16. package/dist-esm/samples-dev/clustersDeleteSample.d.ts +2 -0
  17. package/dist-esm/samples-dev/clustersDeleteSample.d.ts.map +1 -0
  18. package/dist-esm/samples-dev/clustersDeleteSample.js +39 -0
  19. package/dist-esm/samples-dev/clustersDeleteSample.js.map +1 -0
  20. package/dist-esm/samples-dev/clustersGetSample.d.ts +2 -0
  21. package/dist-esm/samples-dev/clustersGetSample.d.ts.map +1 -0
  22. package/dist-esm/samples-dev/clustersGetSample.js +39 -0
  23. package/dist-esm/samples-dev/clustersGetSample.js.map +1 -0
  24. package/dist-esm/samples-dev/clustersListByResourceGroupSample.d.ts +2 -0
  25. package/dist-esm/samples-dev/clustersListByResourceGroupSample.d.ts.map +1 -0
  26. package/dist-esm/samples-dev/clustersListByResourceGroupSample.js +59 -0
  27. package/dist-esm/samples-dev/clustersListByResourceGroupSample.js.map +1 -0
  28. package/dist-esm/samples-dev/clustersListSample.d.ts +2 -0
  29. package/dist-esm/samples-dev/clustersListSample.d.ts.map +1 -0
  30. package/dist-esm/samples-dev/clustersListSample.js +58 -0
  31. package/dist-esm/samples-dev/clustersListSample.js.map +1 -0
  32. package/dist-esm/samples-dev/clustersPromoteReadReplicaSample.d.ts +2 -0
  33. package/dist-esm/samples-dev/clustersPromoteReadReplicaSample.d.ts.map +1 -0
  34. package/dist-esm/samples-dev/clustersPromoteReadReplicaSample.js +39 -0
  35. package/dist-esm/samples-dev/clustersPromoteReadReplicaSample.js.map +1 -0
  36. package/dist-esm/samples-dev/clustersRestartSample.d.ts +2 -0
  37. package/dist-esm/samples-dev/clustersRestartSample.d.ts.map +1 -0
  38. package/dist-esm/samples-dev/clustersRestartSample.js +39 -0
  39. package/dist-esm/samples-dev/clustersRestartSample.js.map +1 -0
  40. package/dist-esm/samples-dev/clustersStartSample.d.ts +2 -0
  41. package/dist-esm/samples-dev/clustersStartSample.d.ts.map +1 -0
  42. package/dist-esm/samples-dev/clustersStartSample.js +39 -0
  43. package/dist-esm/samples-dev/clustersStartSample.js.map +1 -0
  44. package/dist-esm/samples-dev/clustersStopSample.d.ts +2 -0
  45. package/dist-esm/samples-dev/clustersStopSample.d.ts.map +1 -0
  46. package/dist-esm/samples-dev/clustersStopSample.js +39 -0
  47. package/dist-esm/samples-dev/clustersStopSample.js.map +1 -0
  48. package/dist-esm/samples-dev/clustersUpdateSample.d.ts +2 -0
  49. package/dist-esm/samples-dev/clustersUpdateSample.d.ts.map +1 -0
  50. package/dist-esm/samples-dev/clustersUpdateSample.js +132 -0
  51. package/dist-esm/samples-dev/clustersUpdateSample.js.map +1 -0
  52. package/dist-esm/samples-dev/configurationsGetCoordinatorSample.d.ts +2 -0
  53. package/dist-esm/samples-dev/configurationsGetCoordinatorSample.d.ts.map +1 -0
  54. package/dist-esm/samples-dev/configurationsGetCoordinatorSample.js +40 -0
  55. package/dist-esm/samples-dev/configurationsGetCoordinatorSample.js.map +1 -0
  56. package/dist-esm/samples-dev/configurationsGetNodeSample.d.ts +2 -0
  57. package/dist-esm/samples-dev/configurationsGetNodeSample.d.ts.map +1 -0
  58. package/dist-esm/samples-dev/configurationsGetNodeSample.js +40 -0
  59. package/dist-esm/samples-dev/configurationsGetNodeSample.js.map +1 -0
  60. package/dist-esm/samples-dev/configurationsGetSample.d.ts +2 -0
  61. package/dist-esm/samples-dev/configurationsGetSample.d.ts.map +1 -0
  62. package/dist-esm/samples-dev/configurationsGetSample.js +40 -0
  63. package/dist-esm/samples-dev/configurationsGetSample.js.map +1 -0
  64. package/dist-esm/samples-dev/configurationsListByClusterSample.d.ts +2 -0
  65. package/dist-esm/samples-dev/configurationsListByClusterSample.d.ts.map +1 -0
  66. package/dist-esm/samples-dev/configurationsListByClusterSample.js +60 -0
  67. package/dist-esm/samples-dev/configurationsListByClusterSample.js.map +1 -0
  68. package/dist-esm/samples-dev/configurationsListByServerSample.d.ts +2 -0
  69. package/dist-esm/samples-dev/configurationsListByServerSample.d.ts.map +1 -0
  70. package/dist-esm/samples-dev/configurationsListByServerSample.js +61 -0
  71. package/dist-esm/samples-dev/configurationsListByServerSample.js.map +1 -0
  72. package/dist-esm/samples-dev/configurationsUpdateOnCoordinatorSample.d.ts +2 -0
  73. package/dist-esm/samples-dev/configurationsUpdateOnCoordinatorSample.d.ts.map +1 -0
  74. package/dist-esm/samples-dev/configurationsUpdateOnCoordinatorSample.js +41 -0
  75. package/dist-esm/samples-dev/configurationsUpdateOnCoordinatorSample.js.map +1 -0
  76. package/dist-esm/samples-dev/configurationsUpdateOnNodeSample.d.ts +2 -0
  77. package/dist-esm/samples-dev/configurationsUpdateOnNodeSample.d.ts.map +1 -0
  78. package/dist-esm/samples-dev/configurationsUpdateOnNodeSample.js +41 -0
  79. package/dist-esm/samples-dev/configurationsUpdateOnNodeSample.js.map +1 -0
  80. package/dist-esm/samples-dev/firewallRulesCreateOrUpdateSample.d.ts +2 -0
  81. package/dist-esm/samples-dev/firewallRulesCreateOrUpdateSample.d.ts.map +1 -0
  82. package/dist-esm/samples-dev/firewallRulesCreateOrUpdateSample.js +44 -0
  83. package/dist-esm/samples-dev/firewallRulesCreateOrUpdateSample.js.map +1 -0
  84. package/dist-esm/samples-dev/firewallRulesDeleteSample.d.ts +2 -0
  85. package/dist-esm/samples-dev/firewallRulesDeleteSample.d.ts.map +1 -0
  86. package/dist-esm/samples-dev/firewallRulesDeleteSample.js +40 -0
  87. package/dist-esm/samples-dev/firewallRulesDeleteSample.js.map +1 -0
  88. package/dist-esm/samples-dev/firewallRulesGetSample.d.ts +2 -0
  89. package/dist-esm/samples-dev/firewallRulesGetSample.d.ts.map +1 -0
  90. package/dist-esm/samples-dev/firewallRulesGetSample.js +40 -0
  91. package/dist-esm/samples-dev/firewallRulesGetSample.js.map +1 -0
  92. package/dist-esm/samples-dev/firewallRulesListByClusterSample.d.ts +2 -0
  93. package/dist-esm/samples-dev/firewallRulesListByClusterSample.d.ts.map +1 -0
  94. package/dist-esm/samples-dev/firewallRulesListByClusterSample.js +60 -0
  95. package/dist-esm/samples-dev/firewallRulesListByClusterSample.js.map +1 -0
  96. package/dist-esm/samples-dev/operationsListSample.d.ts +2 -0
  97. package/dist-esm/samples-dev/operationsListSample.d.ts.map +1 -0
  98. package/dist-esm/samples-dev/operationsListSample.js +58 -0
  99. package/dist-esm/samples-dev/operationsListSample.js.map +1 -0
  100. package/dist-esm/samples-dev/privateEndpointConnectionsCreateOrUpdateSample.d.ts +2 -0
  101. package/dist-esm/samples-dev/privateEndpointConnectionsCreateOrUpdateSample.d.ts.map +1 -0
  102. package/dist-esm/samples-dev/privateEndpointConnectionsCreateOrUpdateSample.js +46 -0
  103. package/dist-esm/samples-dev/privateEndpointConnectionsCreateOrUpdateSample.js.map +1 -0
  104. package/dist-esm/samples-dev/privateEndpointConnectionsDeleteSample.d.ts +2 -0
  105. package/dist-esm/samples-dev/privateEndpointConnectionsDeleteSample.d.ts.map +1 -0
  106. package/dist-esm/samples-dev/privateEndpointConnectionsDeleteSample.js +40 -0
  107. package/dist-esm/samples-dev/privateEndpointConnectionsDeleteSample.js.map +1 -0
  108. package/dist-esm/samples-dev/privateEndpointConnectionsGetSample.d.ts +2 -0
  109. package/dist-esm/samples-dev/privateEndpointConnectionsGetSample.d.ts.map +1 -0
  110. package/dist-esm/samples-dev/privateEndpointConnectionsGetSample.js +40 -0
  111. package/dist-esm/samples-dev/privateEndpointConnectionsGetSample.js.map +1 -0
  112. package/dist-esm/samples-dev/privateEndpointConnectionsListByClusterSample.d.ts +2 -0
  113. package/dist-esm/samples-dev/privateEndpointConnectionsListByClusterSample.d.ts.map +1 -0
  114. package/dist-esm/samples-dev/privateEndpointConnectionsListByClusterSample.js +60 -0
  115. package/dist-esm/samples-dev/privateEndpointConnectionsListByClusterSample.js.map +1 -0
  116. package/dist-esm/samples-dev/privateLinkResourcesGetSample.d.ts +2 -0
  117. package/dist-esm/samples-dev/privateLinkResourcesGetSample.d.ts.map +1 -0
  118. package/dist-esm/samples-dev/privateLinkResourcesGetSample.js +40 -0
  119. package/dist-esm/samples-dev/privateLinkResourcesGetSample.js.map +1 -0
  120. package/dist-esm/samples-dev/privateLinkResourcesListByClusterSample.d.ts +2 -0
  121. package/dist-esm/samples-dev/privateLinkResourcesListByClusterSample.d.ts.map +1 -0
  122. package/dist-esm/samples-dev/privateLinkResourcesListByClusterSample.js +60 -0
  123. package/dist-esm/samples-dev/privateLinkResourcesListByClusterSample.js.map +1 -0
  124. package/dist-esm/samples-dev/rolesCreateSample.d.ts +2 -0
  125. package/dist-esm/samples-dev/rolesCreateSample.d.ts.map +1 -0
  126. package/dist-esm/samples-dev/rolesCreateSample.js +41 -0
  127. package/dist-esm/samples-dev/rolesCreateSample.js.map +1 -0
  128. package/dist-esm/samples-dev/rolesDeleteSample.d.ts +2 -0
  129. package/dist-esm/samples-dev/rolesDeleteSample.d.ts.map +1 -0
  130. package/dist-esm/samples-dev/rolesDeleteSample.js +40 -0
  131. package/dist-esm/samples-dev/rolesDeleteSample.js.map +1 -0
  132. package/dist-esm/samples-dev/rolesGetSample.d.ts +2 -0
  133. package/dist-esm/samples-dev/rolesGetSample.d.ts.map +1 -0
  134. package/dist-esm/samples-dev/rolesGetSample.js +40 -0
  135. package/dist-esm/samples-dev/rolesGetSample.js.map +1 -0
  136. package/dist-esm/samples-dev/rolesListByClusterSample.d.ts +2 -0
  137. package/dist-esm/samples-dev/rolesListByClusterSample.d.ts.map +1 -0
  138. package/dist-esm/samples-dev/rolesListByClusterSample.js +60 -0
  139. package/dist-esm/samples-dev/rolesListByClusterSample.js.map +1 -0
  140. package/dist-esm/samples-dev/serversGetSample.d.ts +2 -0
  141. package/dist-esm/samples-dev/serversGetSample.d.ts.map +1 -0
  142. package/dist-esm/samples-dev/serversGetSample.js +40 -0
  143. package/dist-esm/samples-dev/serversGetSample.js.map +1 -0
  144. package/dist-esm/samples-dev/serversListByClusterSample.d.ts +2 -0
  145. package/dist-esm/samples-dev/serversListByClusterSample.d.ts.map +1 -0
  146. package/dist-esm/samples-dev/serversListByClusterSample.js +60 -0
  147. package/dist-esm/samples-dev/serversListByClusterSample.js.map +1 -0
  148. package/dist-esm/src/cosmosDBForPostgreSQL.d.ts +27 -0
  149. package/dist-esm/src/cosmosDBForPostgreSQL.d.ts.map +1 -0
  150. package/dist-esm/src/cosmosDBForPostgreSQL.js +107 -0
  151. package/dist-esm/src/cosmosDBForPostgreSQL.js.map +1 -0
  152. package/dist-esm/src/index.d.ts +6 -0
  153. package/dist-esm/src/index.d.ts.map +1 -0
  154. package/dist-esm/src/index.js +13 -0
  155. package/dist-esm/src/index.js.map +1 -0
  156. package/dist-esm/src/lroImpl.d.ts +11 -0
  157. package/dist-esm/src/lroImpl.d.ts.map +1 -0
  158. package/dist-esm/src/lroImpl.js +21 -0
  159. package/dist-esm/src/lroImpl.js.map +1 -0
  160. package/dist-esm/src/models/index.d.ts +1125 -0
  161. package/dist-esm/src/models/index.d.ts.map +1 -0
  162. package/dist-esm/src/models/index.js +84 -0
  163. package/dist-esm/src/models/index.js.map +1 -0
  164. package/dist-esm/src/models/mappers.d.ts +55 -0
  165. package/dist-esm/src/models/mappers.d.ts.map +1 -0
  166. package/dist-esm/src/models/mappers.js +1710 -0
  167. package/dist-esm/src/models/mappers.js.map +1 -0
  168. package/dist-esm/src/models/parameters.d.ts +23 -0
  169. package/dist-esm/src/models/parameters.d.ts.map +1 -0
  170. package/dist-esm/src/models/parameters.js +213 -0
  171. package/dist-esm/src/models/parameters.js.map +1 -0
  172. package/dist-esm/src/operations/clusters.d.ts +174 -0
  173. package/dist-esm/src/operations/clusters.d.ts.map +1 -0
  174. package/dist-esm/src/operations/clusters.js +915 -0
  175. package/dist-esm/src/operations/clusters.js.map +1 -0
  176. package/dist-esm/src/operations/configurations.d.ts +126 -0
  177. package/dist-esm/src/operations/configurations.d.ts.map +1 -0
  178. package/dist-esm/src/operations/configurations.js +585 -0
  179. package/dist-esm/src/operations/configurations.js.map +1 -0
  180. package/dist-esm/src/operations/firewallRules.d.ts +73 -0
  181. package/dist-esm/src/operations/firewallRules.d.ts.map +1 -0
  182. package/dist-esm/src/operations/firewallRules.js +332 -0
  183. package/dist-esm/src/operations/firewallRules.js.map +1 -0
  184. package/dist-esm/src/operations/index.d.ts +9 -0
  185. package/dist-esm/src/operations/index.d.ts.map +1 -0
  186. package/dist-esm/src/operations/index.js +16 -0
  187. package/dist-esm/src/operations/index.js.map +1 -0
  188. package/dist-esm/src/operations/operations.d.ts +26 -0
  189. package/dist-esm/src/operations/operations.d.ts.map +1 -0
  190. package/dist-esm/src/operations/operations.js +101 -0
  191. package/dist-esm/src/operations/operations.js.map +1 -0
  192. package/dist-esm/src/operations/privateEndpointConnections.d.ts +78 -0
  193. package/dist-esm/src/operations/privateEndpointConnections.d.ts.map +1 -0
  194. package/dist-esm/src/operations/privateEndpointConnections.js +347 -0
  195. package/dist-esm/src/operations/privateEndpointConnections.js.map +1 -0
  196. package/dist-esm/src/operations/privateLinkResources.d.ts +38 -0
  197. package/dist-esm/src/operations/privateLinkResources.d.ts.map +1 -0
  198. package/dist-esm/src/operations/privateLinkResources.js +142 -0
  199. package/dist-esm/src/operations/privateLinkResources.js.map +1 -0
  200. package/dist-esm/src/operations/roles.d.ts +73 -0
  201. package/dist-esm/src/operations/roles.d.ts.map +1 -0
  202. package/dist-esm/src/operations/roles.js +326 -0
  203. package/dist-esm/src/operations/roles.js.map +1 -0
  204. package/dist-esm/src/operations/servers.d.ts +38 -0
  205. package/dist-esm/src/operations/servers.d.ts.map +1 -0
  206. package/dist-esm/src/operations/servers.js +142 -0
  207. package/dist-esm/src/operations/servers.js.map +1 -0
  208. package/dist-esm/src/operationsInterfaces/clusters.d.ts +138 -0
  209. package/dist-esm/src/operationsInterfaces/clusters.d.ts.map +1 -0
  210. package/dist-esm/src/operationsInterfaces/clusters.js +9 -0
  211. package/dist-esm/src/operationsInterfaces/clusters.js.map +1 -0
  212. package/dist-esm/src/operationsInterfaces/configurations.d.ts +82 -0
  213. package/dist-esm/src/operationsInterfaces/configurations.d.ts.map +1 -0
  214. package/dist-esm/src/operationsInterfaces/configurations.js +9 -0
  215. package/dist-esm/src/operationsInterfaces/configurations.js.map +1 -0
  216. package/dist-esm/src/operationsInterfaces/firewallRules.d.ts +56 -0
  217. package/dist-esm/src/operationsInterfaces/firewallRules.d.ts.map +1 -0
  218. package/dist-esm/src/operationsInterfaces/firewallRules.js +9 -0
  219. package/dist-esm/src/operationsInterfaces/firewallRules.js.map +1 -0
  220. package/dist-esm/src/operationsInterfaces/index.d.ts +9 -0
  221. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
  222. package/dist-esm/src/operationsInterfaces/index.js +16 -0
  223. package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
  224. package/dist-esm/src/operationsInterfaces/operations.d.ts +11 -0
  225. package/dist-esm/src/operationsInterfaces/operations.d.ts.map +1 -0
  226. package/dist-esm/src/operationsInterfaces/operations.js +9 -0
  227. package/dist-esm/src/operationsInterfaces/operations.js.map +1 -0
  228. package/dist-esm/src/operationsInterfaces/privateEndpointConnections.d.ts +61 -0
  229. package/dist-esm/src/operationsInterfaces/privateEndpointConnections.d.ts.map +1 -0
  230. package/dist-esm/src/operationsInterfaces/privateEndpointConnections.js +9 -0
  231. package/dist-esm/src/operationsInterfaces/privateEndpointConnections.js.map +1 -0
  232. package/dist-esm/src/operationsInterfaces/privateLinkResources.d.ts +21 -0
  233. package/dist-esm/src/operationsInterfaces/privateLinkResources.d.ts.map +1 -0
  234. package/dist-esm/src/operationsInterfaces/privateLinkResources.js +9 -0
  235. package/dist-esm/src/operationsInterfaces/privateLinkResources.js.map +1 -0
  236. package/dist-esm/src/operationsInterfaces/roles.d.ts +56 -0
  237. package/dist-esm/src/operationsInterfaces/roles.d.ts.map +1 -0
  238. package/dist-esm/src/operationsInterfaces/roles.js +9 -0
  239. package/dist-esm/src/operationsInterfaces/roles.js.map +1 -0
  240. package/dist-esm/src/operationsInterfaces/servers.d.ts +21 -0
  241. package/dist-esm/src/operationsInterfaces/servers.d.ts.map +1 -0
  242. package/dist-esm/src/operationsInterfaces/servers.js +9 -0
  243. package/dist-esm/src/operationsInterfaces/servers.js.map +1 -0
  244. package/dist-esm/src/pagingHelper.d.ts +13 -0
  245. package/dist-esm/src/pagingHelper.d.ts.map +1 -0
  246. package/dist-esm/src/pagingHelper.js +32 -0
  247. package/dist-esm/src/pagingHelper.js.map +1 -0
  248. package/dist-esm/test/cosmosdbforpostgresql_operations_test.spec.d.ts +4 -0
  249. package/dist-esm/test/cosmosdbforpostgresql_operations_test.spec.d.ts.map +1 -0
  250. package/dist-esm/test/cosmosdbforpostgresql_operations_test.spec.js +136 -0
  251. package/dist-esm/test/cosmosdbforpostgresql_operations_test.spec.js.map +1 -0
  252. package/package.json +123 -0
  253. package/review/arm-cosmosdbforpostgresql.api.md +942 -0
  254. package/rollup.config.js +122 -0
  255. package/src/cosmosDBForPostgreSQL.ts +172 -0
  256. package/src/index.ts +13 -0
  257. package/src/lroImpl.ts +42 -0
  258. package/src/models/index.ts +1280 -0
  259. package/src/models/mappers.ts +1870 -0
  260. package/src/models/parameters.ts +247 -0
  261. package/src/operations/clusters.ts +1221 -0
  262. package/src/operations/configurations.ts +809 -0
  263. package/src/operations/firewallRules.ts +460 -0
  264. package/src/operations/index.ts +16 -0
  265. package/src/operations/operations.ts +103 -0
  266. package/src/operations/privateEndpointConnections.ts +476 -0
  267. package/src/operations/privateLinkResources.ts +181 -0
  268. package/src/operations/roles.ts +448 -0
  269. package/src/operations/servers.ts +181 -0
  270. package/src/operationsInterfaces/clusters.ts +260 -0
  271. package/src/operationsInterfaces/configurations.ts +164 -0
  272. package/src/operationsInterfaces/firewallRules.ts +115 -0
  273. package/src/operationsInterfaces/index.ts +16 -0
  274. package/src/operationsInterfaces/operations.ts +22 -0
  275. package/src/operationsInterfaces/privateEndpointConnections.ts +120 -0
  276. package/src/operationsInterfaces/privateLinkResources.ts +44 -0
  277. package/src/operationsInterfaces/roles.ts +109 -0
  278. package/src/operationsInterfaces/servers.ts +44 -0
  279. package/src/pagingHelper.ts +39 -0
  280. package/tsconfig.json +33 -0
  281. package/types/arm-cosmosdbforpostgresql.d.ts +1730 -0
  282. package/types/tsdoc-metadata.json +11 -0
@@ -0,0 +1,1221 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation.
3
+ * Licensed under the MIT License.
4
+ *
5
+ * Code generated by Microsoft (R) AutoRest Code Generator.
6
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
+ */
8
+
9
+ import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging";
10
+ import { setContinuationToken } from "../pagingHelper";
11
+ import { Clusters } from "../operationsInterfaces";
12
+ import * as coreClient from "@azure/core-client";
13
+ import * as Mappers from "../models/mappers";
14
+ import * as Parameters from "../models/parameters";
15
+ import { CosmosDBForPostgreSQL } from "../cosmosDBForPostgreSQL";
16
+ import {
17
+ SimplePollerLike,
18
+ OperationState,
19
+ createHttpPoller
20
+ } from "@azure/core-lro";
21
+ import { createLroSpec } from "../lroImpl";
22
+ import {
23
+ Cluster,
24
+ ClustersListNextOptionalParams,
25
+ ClustersListOptionalParams,
26
+ ClustersListResponse,
27
+ ClustersListByResourceGroupNextOptionalParams,
28
+ ClustersListByResourceGroupOptionalParams,
29
+ ClustersListByResourceGroupResponse,
30
+ ClustersCreateOptionalParams,
31
+ ClustersCreateResponse,
32
+ ClustersGetOptionalParams,
33
+ ClustersGetResponse,
34
+ ClustersDeleteOptionalParams,
35
+ ClusterForUpdate,
36
+ ClustersUpdateOptionalParams,
37
+ ClustersUpdateResponse,
38
+ ClustersRestartOptionalParams,
39
+ ClustersRestartResponse,
40
+ ClustersStartOptionalParams,
41
+ ClustersStopOptionalParams,
42
+ ClustersPromoteReadReplicaOptionalParams,
43
+ ClustersPromoteReadReplicaResponse,
44
+ NameAvailabilityRequest,
45
+ ClustersCheckNameAvailabilityOptionalParams,
46
+ ClustersCheckNameAvailabilityResponse,
47
+ ClustersListNextResponse,
48
+ ClustersListByResourceGroupNextResponse
49
+ } from "../models";
50
+
51
+ /// <reference lib="esnext.asynciterable" />
52
+ /** Class containing Clusters operations. */
53
+ export class ClustersImpl implements Clusters {
54
+ private readonly client: CosmosDBForPostgreSQL;
55
+
56
+ /**
57
+ * Initialize a new instance of the class Clusters class.
58
+ * @param client Reference to the service client
59
+ */
60
+ constructor(client: CosmosDBForPostgreSQL) {
61
+ this.client = client;
62
+ }
63
+
64
+ /**
65
+ * Lists all clusters in a subscription.
66
+ * @param options The options parameters.
67
+ */
68
+ public list(
69
+ options?: ClustersListOptionalParams
70
+ ): PagedAsyncIterableIterator<Cluster> {
71
+ const iter = this.listPagingAll(options);
72
+ return {
73
+ next() {
74
+ return iter.next();
75
+ },
76
+ [Symbol.asyncIterator]() {
77
+ return this;
78
+ },
79
+ byPage: (settings?: PageSettings) => {
80
+ if (settings?.maxPageSize) {
81
+ throw new Error("maxPageSize is not supported by this operation.");
82
+ }
83
+ return this.listPagingPage(options, settings);
84
+ }
85
+ };
86
+ }
87
+
88
+ private async *listPagingPage(
89
+ options?: ClustersListOptionalParams,
90
+ settings?: PageSettings
91
+ ): AsyncIterableIterator<Cluster[]> {
92
+ let result: ClustersListResponse;
93
+ let continuationToken = settings?.continuationToken;
94
+ if (!continuationToken) {
95
+ result = await this._list(options);
96
+ let page = result.value || [];
97
+ continuationToken = result.nextLink;
98
+ setContinuationToken(page, continuationToken);
99
+ yield page;
100
+ }
101
+ while (continuationToken) {
102
+ result = await this._listNext(continuationToken, options);
103
+ continuationToken = result.nextLink;
104
+ let page = result.value || [];
105
+ setContinuationToken(page, continuationToken);
106
+ yield page;
107
+ }
108
+ }
109
+
110
+ private async *listPagingAll(
111
+ options?: ClustersListOptionalParams
112
+ ): AsyncIterableIterator<Cluster> {
113
+ for await (const page of this.listPagingPage(options)) {
114
+ yield* page;
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Lists all clusters in a resource group.
120
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
121
+ * @param options The options parameters.
122
+ */
123
+ public listByResourceGroup(
124
+ resourceGroupName: string,
125
+ options?: ClustersListByResourceGroupOptionalParams
126
+ ): PagedAsyncIterableIterator<Cluster> {
127
+ const iter = this.listByResourceGroupPagingAll(resourceGroupName, options);
128
+ return {
129
+ next() {
130
+ return iter.next();
131
+ },
132
+ [Symbol.asyncIterator]() {
133
+ return this;
134
+ },
135
+ byPage: (settings?: PageSettings) => {
136
+ if (settings?.maxPageSize) {
137
+ throw new Error("maxPageSize is not supported by this operation.");
138
+ }
139
+ return this.listByResourceGroupPagingPage(
140
+ resourceGroupName,
141
+ options,
142
+ settings
143
+ );
144
+ }
145
+ };
146
+ }
147
+
148
+ private async *listByResourceGroupPagingPage(
149
+ resourceGroupName: string,
150
+ options?: ClustersListByResourceGroupOptionalParams,
151
+ settings?: PageSettings
152
+ ): AsyncIterableIterator<Cluster[]> {
153
+ let result: ClustersListByResourceGroupResponse;
154
+ let continuationToken = settings?.continuationToken;
155
+ if (!continuationToken) {
156
+ result = await this._listByResourceGroup(resourceGroupName, options);
157
+ let page = result.value || [];
158
+ continuationToken = result.nextLink;
159
+ setContinuationToken(page, continuationToken);
160
+ yield page;
161
+ }
162
+ while (continuationToken) {
163
+ result = await this._listByResourceGroupNext(
164
+ resourceGroupName,
165
+ continuationToken,
166
+ options
167
+ );
168
+ continuationToken = result.nextLink;
169
+ let page = result.value || [];
170
+ setContinuationToken(page, continuationToken);
171
+ yield page;
172
+ }
173
+ }
174
+
175
+ private async *listByResourceGroupPagingAll(
176
+ resourceGroupName: string,
177
+ options?: ClustersListByResourceGroupOptionalParams
178
+ ): AsyncIterableIterator<Cluster> {
179
+ for await (const page of this.listByResourceGroupPagingPage(
180
+ resourceGroupName,
181
+ options
182
+ )) {
183
+ yield* page;
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Lists all clusters in a subscription.
189
+ * @param options The options parameters.
190
+ */
191
+ private _list(
192
+ options?: ClustersListOptionalParams
193
+ ): Promise<ClustersListResponse> {
194
+ return this.client.sendOperationRequest({ options }, listOperationSpec);
195
+ }
196
+
197
+ /**
198
+ * Lists all clusters in a resource group.
199
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
200
+ * @param options The options parameters.
201
+ */
202
+ private _listByResourceGroup(
203
+ resourceGroupName: string,
204
+ options?: ClustersListByResourceGroupOptionalParams
205
+ ): Promise<ClustersListByResourceGroupResponse> {
206
+ return this.client.sendOperationRequest(
207
+ { resourceGroupName, options },
208
+ listByResourceGroupOperationSpec
209
+ );
210
+ }
211
+
212
+ /**
213
+ * Creates a new cluster with servers.
214
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
215
+ * @param clusterName The name of the cluster.
216
+ * @param parameters The required parameters for creating or updating a cluster.
217
+ * @param options The options parameters.
218
+ */
219
+ async beginCreate(
220
+ resourceGroupName: string,
221
+ clusterName: string,
222
+ parameters: Cluster,
223
+ options?: ClustersCreateOptionalParams
224
+ ): Promise<
225
+ SimplePollerLike<
226
+ OperationState<ClustersCreateResponse>,
227
+ ClustersCreateResponse
228
+ >
229
+ > {
230
+ const directSendOperation = async (
231
+ args: coreClient.OperationArguments,
232
+ spec: coreClient.OperationSpec
233
+ ): Promise<ClustersCreateResponse> => {
234
+ return this.client.sendOperationRequest(args, spec);
235
+ };
236
+ const sendOperationFn = async (
237
+ args: coreClient.OperationArguments,
238
+ spec: coreClient.OperationSpec
239
+ ) => {
240
+ let currentRawResponse:
241
+ | coreClient.FullOperationResponse
242
+ | undefined = undefined;
243
+ const providedCallback = args.options?.onResponse;
244
+ const callback: coreClient.RawResponseCallback = (
245
+ rawResponse: coreClient.FullOperationResponse,
246
+ flatResponse: unknown
247
+ ) => {
248
+ currentRawResponse = rawResponse;
249
+ providedCallback?.(rawResponse, flatResponse);
250
+ };
251
+ const updatedArgs = {
252
+ ...args,
253
+ options: {
254
+ ...args.options,
255
+ onResponse: callback
256
+ }
257
+ };
258
+ const flatResponse = await directSendOperation(updatedArgs, spec);
259
+ return {
260
+ flatResponse,
261
+ rawResponse: {
262
+ statusCode: currentRawResponse!.status,
263
+ body: currentRawResponse!.parsedBody,
264
+ headers: currentRawResponse!.headers.toJSON()
265
+ }
266
+ };
267
+ };
268
+
269
+ const lro = createLroSpec({
270
+ sendOperationFn,
271
+ args: { resourceGroupName, clusterName, parameters, options },
272
+ spec: createOperationSpec
273
+ });
274
+ const poller = await createHttpPoller<
275
+ ClustersCreateResponse,
276
+ OperationState<ClustersCreateResponse>
277
+ >(lro, {
278
+ restoreFrom: options?.resumeFrom,
279
+ intervalInMs: options?.updateIntervalInMs,
280
+ resourceLocationConfig: "azure-async-operation"
281
+ });
282
+ await poller.poll();
283
+ return poller;
284
+ }
285
+
286
+ /**
287
+ * Creates a new cluster with servers.
288
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
289
+ * @param clusterName The name of the cluster.
290
+ * @param parameters The required parameters for creating or updating a cluster.
291
+ * @param options The options parameters.
292
+ */
293
+ async beginCreateAndWait(
294
+ resourceGroupName: string,
295
+ clusterName: string,
296
+ parameters: Cluster,
297
+ options?: ClustersCreateOptionalParams
298
+ ): Promise<ClustersCreateResponse> {
299
+ const poller = await this.beginCreate(
300
+ resourceGroupName,
301
+ clusterName,
302
+ parameters,
303
+ options
304
+ );
305
+ return poller.pollUntilDone();
306
+ }
307
+
308
+ /**
309
+ * Gets information about a cluster such as compute and storage configuration and cluster lifecycle
310
+ * metadata such as cluster creation date and time.
311
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
312
+ * @param clusterName The name of the cluster.
313
+ * @param options The options parameters.
314
+ */
315
+ get(
316
+ resourceGroupName: string,
317
+ clusterName: string,
318
+ options?: ClustersGetOptionalParams
319
+ ): Promise<ClustersGetResponse> {
320
+ return this.client.sendOperationRequest(
321
+ { resourceGroupName, clusterName, options },
322
+ getOperationSpec
323
+ );
324
+ }
325
+
326
+ /**
327
+ * Deletes a cluster together with servers in it.
328
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
329
+ * @param clusterName The name of the cluster.
330
+ * @param options The options parameters.
331
+ */
332
+ async beginDelete(
333
+ resourceGroupName: string,
334
+ clusterName: string,
335
+ options?: ClustersDeleteOptionalParams
336
+ ): Promise<SimplePollerLike<OperationState<void>, void>> {
337
+ const directSendOperation = async (
338
+ args: coreClient.OperationArguments,
339
+ spec: coreClient.OperationSpec
340
+ ): Promise<void> => {
341
+ return this.client.sendOperationRequest(args, spec);
342
+ };
343
+ const sendOperationFn = async (
344
+ args: coreClient.OperationArguments,
345
+ spec: coreClient.OperationSpec
346
+ ) => {
347
+ let currentRawResponse:
348
+ | coreClient.FullOperationResponse
349
+ | undefined = undefined;
350
+ const providedCallback = args.options?.onResponse;
351
+ const callback: coreClient.RawResponseCallback = (
352
+ rawResponse: coreClient.FullOperationResponse,
353
+ flatResponse: unknown
354
+ ) => {
355
+ currentRawResponse = rawResponse;
356
+ providedCallback?.(rawResponse, flatResponse);
357
+ };
358
+ const updatedArgs = {
359
+ ...args,
360
+ options: {
361
+ ...args.options,
362
+ onResponse: callback
363
+ }
364
+ };
365
+ const flatResponse = await directSendOperation(updatedArgs, spec);
366
+ return {
367
+ flatResponse,
368
+ rawResponse: {
369
+ statusCode: currentRawResponse!.status,
370
+ body: currentRawResponse!.parsedBody,
371
+ headers: currentRawResponse!.headers.toJSON()
372
+ }
373
+ };
374
+ };
375
+
376
+ const lro = createLroSpec({
377
+ sendOperationFn,
378
+ args: { resourceGroupName, clusterName, options },
379
+ spec: deleteOperationSpec
380
+ });
381
+ const poller = await createHttpPoller<void, OperationState<void>>(lro, {
382
+ restoreFrom: options?.resumeFrom,
383
+ intervalInMs: options?.updateIntervalInMs,
384
+ resourceLocationConfig: "location"
385
+ });
386
+ await poller.poll();
387
+ return poller;
388
+ }
389
+
390
+ /**
391
+ * Deletes a cluster together with servers in it.
392
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
393
+ * @param clusterName The name of the cluster.
394
+ * @param options The options parameters.
395
+ */
396
+ async beginDeleteAndWait(
397
+ resourceGroupName: string,
398
+ clusterName: string,
399
+ options?: ClustersDeleteOptionalParams
400
+ ): Promise<void> {
401
+ const poller = await this.beginDelete(
402
+ resourceGroupName,
403
+ clusterName,
404
+ options
405
+ );
406
+ return poller.pollUntilDone();
407
+ }
408
+
409
+ /**
410
+ * Updates an existing cluster. The request body can contain one or several properties from the cluster
411
+ * definition.
412
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
413
+ * @param clusterName The name of the cluster.
414
+ * @param parameters The parameters for updating a cluster.
415
+ * @param options The options parameters.
416
+ */
417
+ async beginUpdate(
418
+ resourceGroupName: string,
419
+ clusterName: string,
420
+ parameters: ClusterForUpdate,
421
+ options?: ClustersUpdateOptionalParams
422
+ ): Promise<
423
+ SimplePollerLike<
424
+ OperationState<ClustersUpdateResponse>,
425
+ ClustersUpdateResponse
426
+ >
427
+ > {
428
+ const directSendOperation = async (
429
+ args: coreClient.OperationArguments,
430
+ spec: coreClient.OperationSpec
431
+ ): Promise<ClustersUpdateResponse> => {
432
+ return this.client.sendOperationRequest(args, spec);
433
+ };
434
+ const sendOperationFn = async (
435
+ args: coreClient.OperationArguments,
436
+ spec: coreClient.OperationSpec
437
+ ) => {
438
+ let currentRawResponse:
439
+ | coreClient.FullOperationResponse
440
+ | undefined = undefined;
441
+ const providedCallback = args.options?.onResponse;
442
+ const callback: coreClient.RawResponseCallback = (
443
+ rawResponse: coreClient.FullOperationResponse,
444
+ flatResponse: unknown
445
+ ) => {
446
+ currentRawResponse = rawResponse;
447
+ providedCallback?.(rawResponse, flatResponse);
448
+ };
449
+ const updatedArgs = {
450
+ ...args,
451
+ options: {
452
+ ...args.options,
453
+ onResponse: callback
454
+ }
455
+ };
456
+ const flatResponse = await directSendOperation(updatedArgs, spec);
457
+ return {
458
+ flatResponse,
459
+ rawResponse: {
460
+ statusCode: currentRawResponse!.status,
461
+ body: currentRawResponse!.parsedBody,
462
+ headers: currentRawResponse!.headers.toJSON()
463
+ }
464
+ };
465
+ };
466
+
467
+ const lro = createLroSpec({
468
+ sendOperationFn,
469
+ args: { resourceGroupName, clusterName, parameters, options },
470
+ spec: updateOperationSpec
471
+ });
472
+ const poller = await createHttpPoller<
473
+ ClustersUpdateResponse,
474
+ OperationState<ClustersUpdateResponse>
475
+ >(lro, {
476
+ restoreFrom: options?.resumeFrom,
477
+ intervalInMs: options?.updateIntervalInMs,
478
+ resourceLocationConfig: "location"
479
+ });
480
+ await poller.poll();
481
+ return poller;
482
+ }
483
+
484
+ /**
485
+ * Updates an existing cluster. The request body can contain one or several properties from the cluster
486
+ * definition.
487
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
488
+ * @param clusterName The name of the cluster.
489
+ * @param parameters The parameters for updating a cluster.
490
+ * @param options The options parameters.
491
+ */
492
+ async beginUpdateAndWait(
493
+ resourceGroupName: string,
494
+ clusterName: string,
495
+ parameters: ClusterForUpdate,
496
+ options?: ClustersUpdateOptionalParams
497
+ ): Promise<ClustersUpdateResponse> {
498
+ const poller = await this.beginUpdate(
499
+ resourceGroupName,
500
+ clusterName,
501
+ parameters,
502
+ options
503
+ );
504
+ return poller.pollUntilDone();
505
+ }
506
+
507
+ /**
508
+ * Restarts all nodes in the cluster.
509
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
510
+ * @param clusterName The name of the cluster.
511
+ * @param options The options parameters.
512
+ */
513
+ async beginRestart(
514
+ resourceGroupName: string,
515
+ clusterName: string,
516
+ options?: ClustersRestartOptionalParams
517
+ ): Promise<
518
+ SimplePollerLike<
519
+ OperationState<ClustersRestartResponse>,
520
+ ClustersRestartResponse
521
+ >
522
+ > {
523
+ const directSendOperation = async (
524
+ args: coreClient.OperationArguments,
525
+ spec: coreClient.OperationSpec
526
+ ): Promise<ClustersRestartResponse> => {
527
+ return this.client.sendOperationRequest(args, spec);
528
+ };
529
+ const sendOperationFn = async (
530
+ args: coreClient.OperationArguments,
531
+ spec: coreClient.OperationSpec
532
+ ) => {
533
+ let currentRawResponse:
534
+ | coreClient.FullOperationResponse
535
+ | undefined = undefined;
536
+ const providedCallback = args.options?.onResponse;
537
+ const callback: coreClient.RawResponseCallback = (
538
+ rawResponse: coreClient.FullOperationResponse,
539
+ flatResponse: unknown
540
+ ) => {
541
+ currentRawResponse = rawResponse;
542
+ providedCallback?.(rawResponse, flatResponse);
543
+ };
544
+ const updatedArgs = {
545
+ ...args,
546
+ options: {
547
+ ...args.options,
548
+ onResponse: callback
549
+ }
550
+ };
551
+ const flatResponse = await directSendOperation(updatedArgs, spec);
552
+ return {
553
+ flatResponse,
554
+ rawResponse: {
555
+ statusCode: currentRawResponse!.status,
556
+ body: currentRawResponse!.parsedBody,
557
+ headers: currentRawResponse!.headers.toJSON()
558
+ }
559
+ };
560
+ };
561
+
562
+ const lro = createLroSpec({
563
+ sendOperationFn,
564
+ args: { resourceGroupName, clusterName, options },
565
+ spec: restartOperationSpec
566
+ });
567
+ const poller = await createHttpPoller<
568
+ ClustersRestartResponse,
569
+ OperationState<ClustersRestartResponse>
570
+ >(lro, {
571
+ restoreFrom: options?.resumeFrom,
572
+ intervalInMs: options?.updateIntervalInMs,
573
+ resourceLocationConfig: "location"
574
+ });
575
+ await poller.poll();
576
+ return poller;
577
+ }
578
+
579
+ /**
580
+ * Restarts all nodes in the cluster.
581
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
582
+ * @param clusterName The name of the cluster.
583
+ * @param options The options parameters.
584
+ */
585
+ async beginRestartAndWait(
586
+ resourceGroupName: string,
587
+ clusterName: string,
588
+ options?: ClustersRestartOptionalParams
589
+ ): Promise<ClustersRestartResponse> {
590
+ const poller = await this.beginRestart(
591
+ resourceGroupName,
592
+ clusterName,
593
+ options
594
+ );
595
+ return poller.pollUntilDone();
596
+ }
597
+
598
+ /**
599
+ * Starts stopped compute on all cluster nodes.
600
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
601
+ * @param clusterName The name of the cluster.
602
+ * @param options The options parameters.
603
+ */
604
+ async beginStart(
605
+ resourceGroupName: string,
606
+ clusterName: string,
607
+ options?: ClustersStartOptionalParams
608
+ ): Promise<SimplePollerLike<OperationState<void>, void>> {
609
+ const directSendOperation = async (
610
+ args: coreClient.OperationArguments,
611
+ spec: coreClient.OperationSpec
612
+ ): Promise<void> => {
613
+ return this.client.sendOperationRequest(args, spec);
614
+ };
615
+ const sendOperationFn = async (
616
+ args: coreClient.OperationArguments,
617
+ spec: coreClient.OperationSpec
618
+ ) => {
619
+ let currentRawResponse:
620
+ | coreClient.FullOperationResponse
621
+ | undefined = undefined;
622
+ const providedCallback = args.options?.onResponse;
623
+ const callback: coreClient.RawResponseCallback = (
624
+ rawResponse: coreClient.FullOperationResponse,
625
+ flatResponse: unknown
626
+ ) => {
627
+ currentRawResponse = rawResponse;
628
+ providedCallback?.(rawResponse, flatResponse);
629
+ };
630
+ const updatedArgs = {
631
+ ...args,
632
+ options: {
633
+ ...args.options,
634
+ onResponse: callback
635
+ }
636
+ };
637
+ const flatResponse = await directSendOperation(updatedArgs, spec);
638
+ return {
639
+ flatResponse,
640
+ rawResponse: {
641
+ statusCode: currentRawResponse!.status,
642
+ body: currentRawResponse!.parsedBody,
643
+ headers: currentRawResponse!.headers.toJSON()
644
+ }
645
+ };
646
+ };
647
+
648
+ const lro = createLroSpec({
649
+ sendOperationFn,
650
+ args: { resourceGroupName, clusterName, options },
651
+ spec: startOperationSpec
652
+ });
653
+ const poller = await createHttpPoller<void, OperationState<void>>(lro, {
654
+ restoreFrom: options?.resumeFrom,
655
+ intervalInMs: options?.updateIntervalInMs,
656
+ resourceLocationConfig: "location"
657
+ });
658
+ await poller.poll();
659
+ return poller;
660
+ }
661
+
662
+ /**
663
+ * Starts stopped compute on all cluster nodes.
664
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
665
+ * @param clusterName The name of the cluster.
666
+ * @param options The options parameters.
667
+ */
668
+ async beginStartAndWait(
669
+ resourceGroupName: string,
670
+ clusterName: string,
671
+ options?: ClustersStartOptionalParams
672
+ ): Promise<void> {
673
+ const poller = await this.beginStart(
674
+ resourceGroupName,
675
+ clusterName,
676
+ options
677
+ );
678
+ return poller.pollUntilDone();
679
+ }
680
+
681
+ /**
682
+ * Stops compute on all cluster nodes.
683
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
684
+ * @param clusterName The name of the cluster.
685
+ * @param options The options parameters.
686
+ */
687
+ async beginStop(
688
+ resourceGroupName: string,
689
+ clusterName: string,
690
+ options?: ClustersStopOptionalParams
691
+ ): Promise<SimplePollerLike<OperationState<void>, void>> {
692
+ const directSendOperation = async (
693
+ args: coreClient.OperationArguments,
694
+ spec: coreClient.OperationSpec
695
+ ): Promise<void> => {
696
+ return this.client.sendOperationRequest(args, spec);
697
+ };
698
+ const sendOperationFn = async (
699
+ args: coreClient.OperationArguments,
700
+ spec: coreClient.OperationSpec
701
+ ) => {
702
+ let currentRawResponse:
703
+ | coreClient.FullOperationResponse
704
+ | undefined = undefined;
705
+ const providedCallback = args.options?.onResponse;
706
+ const callback: coreClient.RawResponseCallback = (
707
+ rawResponse: coreClient.FullOperationResponse,
708
+ flatResponse: unknown
709
+ ) => {
710
+ currentRawResponse = rawResponse;
711
+ providedCallback?.(rawResponse, flatResponse);
712
+ };
713
+ const updatedArgs = {
714
+ ...args,
715
+ options: {
716
+ ...args.options,
717
+ onResponse: callback
718
+ }
719
+ };
720
+ const flatResponse = await directSendOperation(updatedArgs, spec);
721
+ return {
722
+ flatResponse,
723
+ rawResponse: {
724
+ statusCode: currentRawResponse!.status,
725
+ body: currentRawResponse!.parsedBody,
726
+ headers: currentRawResponse!.headers.toJSON()
727
+ }
728
+ };
729
+ };
730
+
731
+ const lro = createLroSpec({
732
+ sendOperationFn,
733
+ args: { resourceGroupName, clusterName, options },
734
+ spec: stopOperationSpec
735
+ });
736
+ const poller = await createHttpPoller<void, OperationState<void>>(lro, {
737
+ restoreFrom: options?.resumeFrom,
738
+ intervalInMs: options?.updateIntervalInMs,
739
+ resourceLocationConfig: "location"
740
+ });
741
+ await poller.poll();
742
+ return poller;
743
+ }
744
+
745
+ /**
746
+ * Stops compute on all cluster nodes.
747
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
748
+ * @param clusterName The name of the cluster.
749
+ * @param options The options parameters.
750
+ */
751
+ async beginStopAndWait(
752
+ resourceGroupName: string,
753
+ clusterName: string,
754
+ options?: ClustersStopOptionalParams
755
+ ): Promise<void> {
756
+ const poller = await this.beginStop(
757
+ resourceGroupName,
758
+ clusterName,
759
+ options
760
+ );
761
+ return poller.pollUntilDone();
762
+ }
763
+
764
+ /**
765
+ * Promotes read replica cluster to an independent read-write cluster.
766
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
767
+ * @param clusterName The name of the cluster.
768
+ * @param options The options parameters.
769
+ */
770
+ async beginPromoteReadReplica(
771
+ resourceGroupName: string,
772
+ clusterName: string,
773
+ options?: ClustersPromoteReadReplicaOptionalParams
774
+ ): Promise<
775
+ SimplePollerLike<
776
+ OperationState<ClustersPromoteReadReplicaResponse>,
777
+ ClustersPromoteReadReplicaResponse
778
+ >
779
+ > {
780
+ const directSendOperation = async (
781
+ args: coreClient.OperationArguments,
782
+ spec: coreClient.OperationSpec
783
+ ): Promise<ClustersPromoteReadReplicaResponse> => {
784
+ return this.client.sendOperationRequest(args, spec);
785
+ };
786
+ const sendOperationFn = async (
787
+ args: coreClient.OperationArguments,
788
+ spec: coreClient.OperationSpec
789
+ ) => {
790
+ let currentRawResponse:
791
+ | coreClient.FullOperationResponse
792
+ | undefined = undefined;
793
+ const providedCallback = args.options?.onResponse;
794
+ const callback: coreClient.RawResponseCallback = (
795
+ rawResponse: coreClient.FullOperationResponse,
796
+ flatResponse: unknown
797
+ ) => {
798
+ currentRawResponse = rawResponse;
799
+ providedCallback?.(rawResponse, flatResponse);
800
+ };
801
+ const updatedArgs = {
802
+ ...args,
803
+ options: {
804
+ ...args.options,
805
+ onResponse: callback
806
+ }
807
+ };
808
+ const flatResponse = await directSendOperation(updatedArgs, spec);
809
+ return {
810
+ flatResponse,
811
+ rawResponse: {
812
+ statusCode: currentRawResponse!.status,
813
+ body: currentRawResponse!.parsedBody,
814
+ headers: currentRawResponse!.headers.toJSON()
815
+ }
816
+ };
817
+ };
818
+
819
+ const lro = createLroSpec({
820
+ sendOperationFn,
821
+ args: { resourceGroupName, clusterName, options },
822
+ spec: promoteReadReplicaOperationSpec
823
+ });
824
+ const poller = await createHttpPoller<
825
+ ClustersPromoteReadReplicaResponse,
826
+ OperationState<ClustersPromoteReadReplicaResponse>
827
+ >(lro, {
828
+ restoreFrom: options?.resumeFrom,
829
+ intervalInMs: options?.updateIntervalInMs,
830
+ resourceLocationConfig: "location"
831
+ });
832
+ await poller.poll();
833
+ return poller;
834
+ }
835
+
836
+ /**
837
+ * Promotes read replica cluster to an independent read-write cluster.
838
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
839
+ * @param clusterName The name of the cluster.
840
+ * @param options The options parameters.
841
+ */
842
+ async beginPromoteReadReplicaAndWait(
843
+ resourceGroupName: string,
844
+ clusterName: string,
845
+ options?: ClustersPromoteReadReplicaOptionalParams
846
+ ): Promise<ClustersPromoteReadReplicaResponse> {
847
+ const poller = await this.beginPromoteReadReplica(
848
+ resourceGroupName,
849
+ clusterName,
850
+ options
851
+ );
852
+ return poller.pollUntilDone();
853
+ }
854
+
855
+ /**
856
+ * Checks availability of a cluster name. Cluster names should be globally unique; at least 3
857
+ * characters and at most 40 characters long; they must only contain lowercase letters, numbers, and
858
+ * hyphens; and must not start or end with a hyphen.
859
+ * @param nameAvailabilityRequest The required parameters for checking if cluster name is available.
860
+ * @param options The options parameters.
861
+ */
862
+ checkNameAvailability(
863
+ nameAvailabilityRequest: NameAvailabilityRequest,
864
+ options?: ClustersCheckNameAvailabilityOptionalParams
865
+ ): Promise<ClustersCheckNameAvailabilityResponse> {
866
+ return this.client.sendOperationRequest(
867
+ { nameAvailabilityRequest, options },
868
+ checkNameAvailabilityOperationSpec
869
+ );
870
+ }
871
+
872
+ /**
873
+ * ListNext
874
+ * @param nextLink The nextLink from the previous successful call to the List method.
875
+ * @param options The options parameters.
876
+ */
877
+ private _listNext(
878
+ nextLink: string,
879
+ options?: ClustersListNextOptionalParams
880
+ ): Promise<ClustersListNextResponse> {
881
+ return this.client.sendOperationRequest(
882
+ { nextLink, options },
883
+ listNextOperationSpec
884
+ );
885
+ }
886
+
887
+ /**
888
+ * ListByResourceGroupNext
889
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
890
+ * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
891
+ * @param options The options parameters.
892
+ */
893
+ private _listByResourceGroupNext(
894
+ resourceGroupName: string,
895
+ nextLink: string,
896
+ options?: ClustersListByResourceGroupNextOptionalParams
897
+ ): Promise<ClustersListByResourceGroupNextResponse> {
898
+ return this.client.sendOperationRequest(
899
+ { resourceGroupName, nextLink, options },
900
+ listByResourceGroupNextOperationSpec
901
+ );
902
+ }
903
+ }
904
+ // Operation Specifications
905
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
906
+
907
+ const listOperationSpec: coreClient.OperationSpec = {
908
+ path:
909
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2",
910
+ httpMethod: "GET",
911
+ responses: {
912
+ 200: {
913
+ bodyMapper: Mappers.ClusterListResult
914
+ },
915
+ default: {
916
+ bodyMapper: Mappers.ErrorResponse
917
+ }
918
+ },
919
+ queryParameters: [Parameters.apiVersion],
920
+ urlParameters: [Parameters.$host, Parameters.subscriptionId],
921
+ headerParameters: [Parameters.accept],
922
+ serializer
923
+ };
924
+ const listByResourceGroupOperationSpec: coreClient.OperationSpec = {
925
+ path:
926
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2",
927
+ httpMethod: "GET",
928
+ responses: {
929
+ 200: {
930
+ bodyMapper: Mappers.ClusterListResult
931
+ },
932
+ default: {
933
+ bodyMapper: Mappers.ErrorResponse
934
+ }
935
+ },
936
+ queryParameters: [Parameters.apiVersion],
937
+ urlParameters: [
938
+ Parameters.$host,
939
+ Parameters.subscriptionId,
940
+ Parameters.resourceGroupName
941
+ ],
942
+ headerParameters: [Parameters.accept],
943
+ serializer
944
+ };
945
+ const createOperationSpec: coreClient.OperationSpec = {
946
+ path:
947
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}",
948
+ httpMethod: "PUT",
949
+ responses: {
950
+ 200: {
951
+ bodyMapper: Mappers.Cluster
952
+ },
953
+ 201: {
954
+ bodyMapper: Mappers.Cluster
955
+ },
956
+ 202: {
957
+ bodyMapper: Mappers.Cluster
958
+ },
959
+ 204: {
960
+ bodyMapper: Mappers.Cluster
961
+ },
962
+ default: {
963
+ bodyMapper: Mappers.ErrorResponse
964
+ }
965
+ },
966
+ requestBody: Parameters.parameters,
967
+ queryParameters: [Parameters.apiVersion],
968
+ urlParameters: [
969
+ Parameters.$host,
970
+ Parameters.subscriptionId,
971
+ Parameters.resourceGroupName,
972
+ Parameters.clusterName
973
+ ],
974
+ headerParameters: [Parameters.accept, Parameters.contentType],
975
+ mediaType: "json",
976
+ serializer
977
+ };
978
+ const getOperationSpec: coreClient.OperationSpec = {
979
+ path:
980
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}",
981
+ httpMethod: "GET",
982
+ responses: {
983
+ 200: {
984
+ bodyMapper: Mappers.Cluster
985
+ },
986
+ default: {
987
+ bodyMapper: Mappers.ErrorResponse
988
+ }
989
+ },
990
+ queryParameters: [Parameters.apiVersion],
991
+ urlParameters: [
992
+ Parameters.$host,
993
+ Parameters.subscriptionId,
994
+ Parameters.resourceGroupName,
995
+ Parameters.clusterName
996
+ ],
997
+ headerParameters: [Parameters.accept],
998
+ serializer
999
+ };
1000
+ const deleteOperationSpec: coreClient.OperationSpec = {
1001
+ path:
1002
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}",
1003
+ httpMethod: "DELETE",
1004
+ responses: {
1005
+ 200: {},
1006
+ 201: {},
1007
+ 202: {},
1008
+ 204: {},
1009
+ default: {
1010
+ bodyMapper: Mappers.ErrorResponse
1011
+ }
1012
+ },
1013
+ queryParameters: [Parameters.apiVersion],
1014
+ urlParameters: [
1015
+ Parameters.$host,
1016
+ Parameters.subscriptionId,
1017
+ Parameters.resourceGroupName,
1018
+ Parameters.clusterName
1019
+ ],
1020
+ headerParameters: [Parameters.accept],
1021
+ serializer
1022
+ };
1023
+ const updateOperationSpec: coreClient.OperationSpec = {
1024
+ path:
1025
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}",
1026
+ httpMethod: "PATCH",
1027
+ responses: {
1028
+ 200: {
1029
+ bodyMapper: Mappers.Cluster
1030
+ },
1031
+ 201: {
1032
+ bodyMapper: Mappers.Cluster
1033
+ },
1034
+ 202: {
1035
+ bodyMapper: Mappers.Cluster
1036
+ },
1037
+ 204: {
1038
+ bodyMapper: Mappers.Cluster
1039
+ },
1040
+ default: {
1041
+ bodyMapper: Mappers.ErrorResponse
1042
+ }
1043
+ },
1044
+ requestBody: Parameters.parameters1,
1045
+ queryParameters: [Parameters.apiVersion],
1046
+ urlParameters: [
1047
+ Parameters.$host,
1048
+ Parameters.subscriptionId,
1049
+ Parameters.resourceGroupName,
1050
+ Parameters.clusterName
1051
+ ],
1052
+ headerParameters: [Parameters.accept, Parameters.contentType],
1053
+ mediaType: "json",
1054
+ serializer
1055
+ };
1056
+ const restartOperationSpec: coreClient.OperationSpec = {
1057
+ path:
1058
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}/restart",
1059
+ httpMethod: "POST",
1060
+ responses: {
1061
+ 200: {
1062
+ headersMapper: Mappers.ClustersRestartHeaders
1063
+ },
1064
+ 201: {
1065
+ headersMapper: Mappers.ClustersRestartHeaders
1066
+ },
1067
+ 202: {
1068
+ headersMapper: Mappers.ClustersRestartHeaders
1069
+ },
1070
+ 204: {
1071
+ headersMapper: Mappers.ClustersRestartHeaders
1072
+ },
1073
+ default: {
1074
+ bodyMapper: Mappers.ErrorResponse
1075
+ }
1076
+ },
1077
+ queryParameters: [Parameters.apiVersion],
1078
+ urlParameters: [
1079
+ Parameters.$host,
1080
+ Parameters.subscriptionId,
1081
+ Parameters.resourceGroupName,
1082
+ Parameters.clusterName
1083
+ ],
1084
+ headerParameters: [Parameters.accept],
1085
+ serializer
1086
+ };
1087
+ const startOperationSpec: coreClient.OperationSpec = {
1088
+ path:
1089
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}/start",
1090
+ httpMethod: "POST",
1091
+ responses: {
1092
+ 200: {},
1093
+ 201: {},
1094
+ 202: {},
1095
+ 204: {},
1096
+ default: {
1097
+ bodyMapper: Mappers.ErrorResponse
1098
+ }
1099
+ },
1100
+ queryParameters: [Parameters.apiVersion],
1101
+ urlParameters: [
1102
+ Parameters.$host,
1103
+ Parameters.subscriptionId,
1104
+ Parameters.resourceGroupName,
1105
+ Parameters.clusterName
1106
+ ],
1107
+ headerParameters: [Parameters.accept],
1108
+ serializer
1109
+ };
1110
+ const stopOperationSpec: coreClient.OperationSpec = {
1111
+ path:
1112
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}/stop",
1113
+ httpMethod: "POST",
1114
+ responses: {
1115
+ 200: {},
1116
+ 201: {},
1117
+ 202: {},
1118
+ 204: {},
1119
+ default: {
1120
+ bodyMapper: Mappers.ErrorResponse
1121
+ }
1122
+ },
1123
+ queryParameters: [Parameters.apiVersion],
1124
+ urlParameters: [
1125
+ Parameters.$host,
1126
+ Parameters.subscriptionId,
1127
+ Parameters.resourceGroupName,
1128
+ Parameters.clusterName
1129
+ ],
1130
+ headerParameters: [Parameters.accept],
1131
+ serializer
1132
+ };
1133
+ const promoteReadReplicaOperationSpec: coreClient.OperationSpec = {
1134
+ path:
1135
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/serverGroupsv2/{clusterName}/promote",
1136
+ httpMethod: "POST",
1137
+ responses: {
1138
+ 200: {
1139
+ headersMapper: Mappers.ClustersPromoteReadReplicaHeaders
1140
+ },
1141
+ 201: {
1142
+ headersMapper: Mappers.ClustersPromoteReadReplicaHeaders
1143
+ },
1144
+ 202: {
1145
+ headersMapper: Mappers.ClustersPromoteReadReplicaHeaders
1146
+ },
1147
+ 204: {
1148
+ headersMapper: Mappers.ClustersPromoteReadReplicaHeaders
1149
+ },
1150
+ default: {
1151
+ bodyMapper: Mappers.ErrorResponse
1152
+ }
1153
+ },
1154
+ queryParameters: [Parameters.apiVersion],
1155
+ urlParameters: [
1156
+ Parameters.$host,
1157
+ Parameters.subscriptionId,
1158
+ Parameters.resourceGroupName,
1159
+ Parameters.clusterName
1160
+ ],
1161
+ headerParameters: [Parameters.accept],
1162
+ serializer
1163
+ };
1164
+ const checkNameAvailabilityOperationSpec: coreClient.OperationSpec = {
1165
+ path:
1166
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/checkNameAvailability",
1167
+ httpMethod: "POST",
1168
+ responses: {
1169
+ 200: {
1170
+ bodyMapper: Mappers.NameAvailability
1171
+ },
1172
+ default: {
1173
+ bodyMapper: Mappers.ErrorResponse
1174
+ }
1175
+ },
1176
+ requestBody: Parameters.nameAvailabilityRequest,
1177
+ queryParameters: [Parameters.apiVersion],
1178
+ urlParameters: [Parameters.$host, Parameters.subscriptionId],
1179
+ headerParameters: [Parameters.accept, Parameters.contentType],
1180
+ mediaType: "json",
1181
+ serializer
1182
+ };
1183
+ const listNextOperationSpec: coreClient.OperationSpec = {
1184
+ path: "{nextLink}",
1185
+ httpMethod: "GET",
1186
+ responses: {
1187
+ 200: {
1188
+ bodyMapper: Mappers.ClusterListResult
1189
+ },
1190
+ default: {
1191
+ bodyMapper: Mappers.ErrorResponse
1192
+ }
1193
+ },
1194
+ urlParameters: [
1195
+ Parameters.$host,
1196
+ Parameters.subscriptionId,
1197
+ Parameters.nextLink
1198
+ ],
1199
+ headerParameters: [Parameters.accept],
1200
+ serializer
1201
+ };
1202
+ const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = {
1203
+ path: "{nextLink}",
1204
+ httpMethod: "GET",
1205
+ responses: {
1206
+ 200: {
1207
+ bodyMapper: Mappers.ClusterListResult
1208
+ },
1209
+ default: {
1210
+ bodyMapper: Mappers.ErrorResponse
1211
+ }
1212
+ },
1213
+ urlParameters: [
1214
+ Parameters.$host,
1215
+ Parameters.subscriptionId,
1216
+ Parameters.resourceGroupName,
1217
+ Parameters.nextLink
1218
+ ],
1219
+ headerParameters: [Parameters.accept],
1220
+ serializer
1221
+ };