ptctools 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl

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 (1238) hide show
  1. ptctools/__init__.py +7 -1
  2. ptctools/_portainer.py +450 -226
  3. ptctools/config.py +81 -142
  4. ptctools/db.py +166 -136
  5. ptctools/portainer_client/.openapi-generator/FILES +818 -0
  6. ptctools/portainer_client/.openapi-generator/VERSION +1 -0
  7. ptctools/portainer_client/.openapi-generator-ignore +23 -0
  8. ptctools/portainer_client/openapi_client/__init__.py +855 -0
  9. ptctools/portainer_client/openapi_client/api/__init__.py +36 -0
  10. ptctools/portainer_client/openapi_client/api/auth_api.py +848 -0
  11. ptctools/portainer_client/openapi_client/api/backup_api.py +587 -0
  12. ptctools/portainer_client/openapi_client/api/custom_templates_api.py +2659 -0
  13. ptctools/portainer_client/openapi_client/api/docker_api.py +878 -0
  14. ptctools/portainer_client/openapi_client/api/edge_api.py +597 -0
  15. ptctools/portainer_client/openapi_client/api/edge_groups_api.py +1405 -0
  16. ptctools/portainer_client/openapi_client/api/edge_jobs_api.py +3146 -0
  17. ptctools/portainer_client/openapi_client/api/edge_stacks_api.py +2990 -0
  18. ptctools/portainer_client/openapi_client/api/endpoint_groups_api.py +1965 -0
  19. ptctools/portainer_client/openapi_client/api/endpoints_api.py +6607 -0
  20. ptctools/portainer_client/openapi_client/api/gitops_api.py +308 -0
  21. ptctools/portainer_client/openapi_client/api/helm_api.py +3529 -0
  22. ptctools/portainer_client/openapi_client/api/intel_api.py +1718 -0
  23. ptctools/portainer_client/openapi_client/api/kubernetes_api.py +18877 -0
  24. ptctools/portainer_client/openapi_client/api/ldap_api.py +313 -0
  25. ptctools/portainer_client/openapi_client/api/motd_api.py +284 -0
  26. ptctools/portainer_client/openapi_client/api/registries_api.py +1712 -0
  27. ptctools/portainer_client/openapi_client/api/resource_controls_api.py +891 -0
  28. ptctools/portainer_client/openapi_client/api/roles_api.py +288 -0
  29. ptctools/portainer_client/openapi_client/api/settings_api.py +820 -0
  30. ptctools/portainer_client/openapi_client/api/ssl_api.py +573 -0
  31. ptctools/portainer_client/openapi_client/api/stacks_api.py +6640 -0
  32. ptctools/portainer_client/openapi_client/api/status_api.py +285 -0
  33. ptctools/portainer_client/openapi_client/api/system_api.py +1277 -0
  34. ptctools/portainer_client/openapi_client/api/tags_api.py +839 -0
  35. ptctools/portainer_client/openapi_client/api/team_memberships_api.py +1425 -0
  36. ptctools/portainer_client/openapi_client/api/teams_api.py +1453 -0
  37. ptctools/portainer_client/openapi_client/api/templates_api.py +558 -0
  38. ptctools/portainer_client/openapi_client/api/upload_api.py +343 -0
  39. ptctools/portainer_client/openapi_client/api/users_api.py +3659 -0
  40. ptctools/portainer_client/openapi_client/api/webhooks_api.py +1415 -0
  41. ptctools/portainer_client/openapi_client/api/websocket_api.py +1279 -0
  42. ptctools/portainer_client/openapi_client/api_client.py +805 -0
  43. ptctools/portainer_client/openapi_client/api_response.py +21 -0
  44. ptctools/portainer_client/openapi_client/configuration.py +619 -0
  45. ptctools/portainer_client/openapi_client/docs/AuthApi.md +236 -0
  46. ptctools/portainer_client/openapi_client/docs/AuthAuthenticatePayload.md +30 -0
  47. ptctools/portainer_client/openapi_client/docs/AuthAuthenticateResponse.md +29 -0
  48. ptctools/portainer_client/openapi_client/docs/AuthOauthPayload.md +29 -0
  49. ptctools/portainer_client/openapi_client/docs/BackupApi.md +166 -0
  50. ptctools/portainer_client/openapi_client/docs/BackupBackupPayload.md +29 -0
  51. ptctools/portainer_client/openapi_client/docs/BackupRestorePayload.md +31 -0
  52. ptctools/portainer_client/openapi_client/docs/BuildBuildInfo.md +35 -0
  53. ptctools/portainer_client/openapi_client/docs/BuildDependenciesInfo.md +32 -0
  54. ptctools/portainer_client/openapi_client/docs/BuildRuntimeInfo.md +29 -0
  55. ptctools/portainer_client/openapi_client/docs/ContainersContainerGpusResponse.md +29 -0
  56. ptctools/portainer_client/openapi_client/docs/CustomTemplatesApi.md +842 -0
  57. ptctools/portainer_client/openapi_client/docs/CustomtemplatesCustomTemplateFromFileContentPayload.md +37 -0
  58. ptctools/portainer_client/openapi_client/docs/CustomtemplatesCustomTemplateFromGitRepositoryPayload.md +44 -0
  59. ptctools/portainer_client/openapi_client/docs/CustomtemplatesCustomTemplateUpdatePayload.md +47 -0
  60. ptctools/portainer_client/openapi_client/docs/CustomtemplatesFileResponse.md +29 -0
  61. ptctools/portainer_client/openapi_client/docs/DockerApi.md +259 -0
  62. ptctools/portainer_client/openapi_client/docs/DockerContainerStats.md +33 -0
  63. ptctools/portainer_client/openapi_client/docs/DockerDashboardResponse.md +34 -0
  64. ptctools/portainer_client/openapi_client/docs/DockerImagesCounters.md +30 -0
  65. ptctools/portainer_client/openapi_client/docs/EdgeApi.md +152 -0
  66. ptctools/portainer_client/openapi_client/docs/EdgeDeployerOptionsPayload.md +30 -0
  67. ptctools/portainer_client/openapi_client/docs/EdgeGroupsApi.md +451 -0
  68. ptctools/portainer_client/openapi_client/docs/EdgeJobsApi.md +1003 -0
  69. ptctools/portainer_client/openapi_client/docs/EdgeRegistryCredentials.md +31 -0
  70. ptctools/portainer_client/openapi_client/docs/EdgeStackPayload.md +48 -0
  71. ptctools/portainer_client/openapi_client/docs/EdgeStacksApi.md +900 -0
  72. ptctools/portainer_client/openapi_client/docs/EdgegroupsDecoratedEdgeGroup.md +39 -0
  73. ptctools/portainer_client/openapi_client/docs/EdgegroupsEdgeGroupCreatePayload.md +33 -0
  74. ptctools/portainer_client/openapi_client/docs/EdgegroupsEdgeGroupUpdatePayload.md +33 -0
  75. ptctools/portainer_client/openapi_client/docs/EdgejobsEdgeJobCreateFromFileContentPayload.md +34 -0
  76. ptctools/portainer_client/openapi_client/docs/EdgejobsEdgeJobFileResponse.md +29 -0
  77. ptctools/portainer_client/openapi_client/docs/EdgejobsEdgeJobUpdatePayload.md +34 -0
  78. ptctools/portainer_client/openapi_client/docs/EdgejobsFileResponse.md +29 -0
  79. ptctools/portainer_client/openapi_client/docs/EdgejobsTaskContainer.md +32 -0
  80. ptctools/portainer_client/openapi_client/docs/EdgestacksEdgeStackFromGitRepositoryPayload.md +41 -0
  81. ptctools/portainer_client/openapi_client/docs/EdgestacksEdgeStackFromStringPayload.md +34 -0
  82. ptctools/portainer_client/openapi_client/docs/EdgestacksStackFileResponse.md +29 -0
  83. ptctools/portainer_client/openapi_client/docs/EdgestacksUpdateEdgeStackPayload.md +33 -0
  84. ptctools/portainer_client/openapi_client/docs/EdgestacksUpdateStatusPayload.md +33 -0
  85. ptctools/portainer_client/openapi_client/docs/EndpointGroupsApi.md +638 -0
  86. ptctools/portainer_client/openapi_client/docs/EndpointedgeEdgeJobResponse.md +33 -0
  87. ptctools/portainer_client/openapi_client/docs/EndpointedgeEndpointEdgeStatusInspectResponse.md +34 -0
  88. ptctools/portainer_client/openapi_client/docs/EndpointedgeStackStatusResponse.md +30 -0
  89. ptctools/portainer_client/openapi_client/docs/EndpointgroupsEndpointGroupCreatePayload.md +32 -0
  90. ptctools/portainer_client/openapi_client/docs/EndpointgroupsEndpointGroupUpdatePayload.md +33 -0
  91. ptctools/portainer_client/openapi_client/docs/EndpointsApi.md +1930 -0
  92. ptctools/portainer_client/openapi_client/docs/EndpointsDockerhubStatusResponse.md +30 -0
  93. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointCreateGlobalKeyResponse.md +29 -0
  94. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointDeleteBatchPartialResponse.md +30 -0
  95. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointDeleteBatchPayload.md +29 -0
  96. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointDeleteRequest.md +30 -0
  97. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointSettingsUpdatePayload.md +39 -0
  98. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointUpdatePayload.md +45 -0
  99. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointUpdateRelationsPayload.md +29 -0
  100. ptctools/portainer_client/openapi_client/docs/EndpointsEndpointUpdateRelationsPayloadRelationsValue.md +31 -0
  101. ptctools/portainer_client/openapi_client/docs/EndpointsForceUpdateServicePayload.md +30 -0
  102. ptctools/portainer_client/openapi_client/docs/EndpointsRegistryAccessPayload.md +31 -0
  103. ptctools/portainer_client/openapi_client/docs/FilesystemDirEntry.md +32 -0
  104. ptctools/portainer_client/openapi_client/docs/GithubComPortainerPortainerPkgLibhelmReleaseHook.md +36 -0
  105. ptctools/portainer_client/openapi_client/docs/GithubComPortainerPortainerPkgLibhelmReleaseHookExecution.md +31 -0
  106. ptctools/portainer_client/openapi_client/docs/GithubComPortainerPortainerPkgLibhelmReleaseInfo.md +35 -0
  107. ptctools/portainer_client/openapi_client/docs/GithubComPortainerPortainerPkgLibhelmReleaseRelease.md +39 -0
  108. ptctools/portainer_client/openapi_client/docs/GitopsApi.md +99 -0
  109. ptctools/portainer_client/openapi_client/docs/GitopsFileResponse.md +29 -0
  110. ptctools/portainer_client/openapi_client/docs/GitopsRepositoryFilePreviewPayload.md +35 -0
  111. ptctools/portainer_client/openapi_client/docs/GittypesGitAuthentication.md +32 -0
  112. ptctools/portainer_client/openapi_client/docs/GittypesGitCredentialAuthType.md +12 -0
  113. ptctools/portainer_client/openapi_client/docs/GittypesRepoConfig.md +34 -0
  114. ptctools/portainer_client/openapi_client/docs/HelmApi.md +1062 -0
  115. ptctools/portainer_client/openapi_client/docs/HelmInstallChartPayload.md +35 -0
  116. ptctools/portainer_client/openapi_client/docs/ImagesImageResponse.md +34 -0
  117. ptctools/portainer_client/openapi_client/docs/IntelApi.md +505 -0
  118. ptctools/portainer_client/openapi_client/docs/IntstrIntOrString.md +31 -0
  119. ptctools/portainer_client/openapi_client/docs/IntstrType.md +12 -0
  120. ptctools/portainer_client/openapi_client/docs/K8sIoApiCoreV1ConditionStatus.md +14 -0
  121. ptctools/portainer_client/openapi_client/docs/K8sIoApiRbacV1Subject.md +32 -0
  122. ptctools/portainer_client/openapi_client/docs/K8sIoApimachineryPkgApisMetaV1ConditionStatus.md +14 -0
  123. ptctools/portainer_client/openapi_client/docs/KubernetesApi.md +6017 -0
  124. ptctools/portainer_client/openapi_client/docs/KubernetesConfiguration.md +31 -0
  125. ptctools/portainer_client/openapi_client/docs/KubernetesCustomResourceMetadata.md +31 -0
  126. ptctools/portainer_client/openapi_client/docs/KubernetesDescribeResourceResponse.md +29 -0
  127. ptctools/portainer_client/openapi_client/docs/KubernetesIngressRule.md +32 -0
  128. ptctools/portainer_client/openapi_client/docs/KubernetesK8sApplication.md +60 -0
  129. ptctools/portainer_client/openapi_client/docs/KubernetesK8sApplicationResource.md +32 -0
  130. ptctools/portainer_client/openapi_client/docs/KubernetesK8sClusterRole.md +32 -0
  131. ptctools/portainer_client/openapi_client/docs/KubernetesK8sClusterRoleBinding.md +35 -0
  132. ptctools/portainer_client/openapi_client/docs/KubernetesK8sConfigMap.md +39 -0
  133. ptctools/portainer_client/openapi_client/docs/KubernetesK8sConfigurationOwnerResource.md +31 -0
  134. ptctools/portainer_client/openapi_client/docs/KubernetesK8sCronJob.md +37 -0
  135. ptctools/portainer_client/openapi_client/docs/KubernetesK8sDashboard.md +35 -0
  136. ptctools/portainer_client/openapi_client/docs/KubernetesK8sEvent.md +40 -0
  137. ptctools/portainer_client/openapi_client/docs/KubernetesK8sEventInvolvedObject.md +32 -0
  138. ptctools/portainer_client/openapi_client/docs/KubernetesK8sIngressController.md +34 -0
  139. ptctools/portainer_client/openapi_client/docs/KubernetesK8sIngressInfo.md +39 -0
  140. ptctools/portainer_client/openapi_client/docs/KubernetesK8sIngressPath.md +35 -0
  141. ptctools/portainer_client/openapi_client/docs/KubernetesK8sIngressTLS.md +30 -0
  142. ptctools/portainer_client/openapi_client/docs/KubernetesK8sJob.md +42 -0
  143. ptctools/portainer_client/openapi_client/docs/KubernetesK8sNamespaceDetails.md +32 -0
  144. ptctools/portainer_client/openapi_client/docs/KubernetesK8sPersistentVolume.md +37 -0
  145. ptctools/portainer_client/openapi_client/docs/KubernetesK8sPersistentVolumeClaim.md +41 -0
  146. ptctools/portainer_client/openapi_client/docs/KubernetesK8sResourceQuota.md +31 -0
  147. ptctools/portainer_client/openapi_client/docs/KubernetesK8sRole.md +33 -0
  148. ptctools/portainer_client/openapi_client/docs/KubernetesK8sRoleBinding.md +35 -0
  149. ptctools/portainer_client/openapi_client/docs/KubernetesK8sSecret.md +40 -0
  150. ptctools/portainer_client/openapi_client/docs/KubernetesK8sServiceAccount.md +33 -0
  151. ptctools/portainer_client/openapi_client/docs/KubernetesK8sServiceInfo.md +43 -0
  152. ptctools/portainer_client/openapi_client/docs/KubernetesK8sServiceIngress.md +30 -0
  153. ptctools/portainer_client/openapi_client/docs/KubernetesK8sServicePort.md +33 -0
  154. ptctools/portainer_client/openapi_client/docs/KubernetesK8sStorageClass.md +32 -0
  155. ptctools/portainer_client/openapi_client/docs/KubernetesK8sVolumeInfo.md +31 -0
  156. ptctools/portainer_client/openapi_client/docs/KubernetesMetadata.md +30 -0
  157. ptctools/portainer_client/openapi_client/docs/KubernetesNamespacesToggleSystemPayload.md +29 -0
  158. ptctools/portainer_client/openapi_client/docs/KubernetesPod.md +38 -0
  159. ptctools/portainer_client/openapi_client/docs/KubernetesPublishedPort.md +30 -0
  160. ptctools/portainer_client/openapi_client/docs/KubernetesTLSInfo.md +29 -0
  161. ptctools/portainer_client/openapi_client/docs/LdapApi.md +96 -0
  162. ptctools/portainer_client/openapi_client/docs/LdapCheckPayload.md +29 -0
  163. ptctools/portainer_client/openapi_client/docs/MotdApi.md +91 -0
  164. ptctools/portainer_client/openapi_client/docs/MotdMotdResponse.md +33 -0
  165. ptctools/portainer_client/openapi_client/docs/Oauth2AuthStyle.md +14 -0
  166. ptctools/portainer_client/openapi_client/docs/OpenamtDeviceActionPayload.md +29 -0
  167. ptctools/portainer_client/openapi_client/docs/OpenamtDeviceFeaturesPayload.md +29 -0
  168. ptctools/portainer_client/openapi_client/docs/OpenamtOpenAMTConfigurePayload.md +36 -0
  169. ptctools/portainer_client/openapi_client/docs/OsFileMode.md +38 -0
  170. ptctools/portainer_client/openapi_client/docs/PlatformContainerPlatform.md +18 -0
  171. ptctools/portainer_client/openapi_client/docs/PortainerAPIKey.md +35 -0
  172. ptctools/portainer_client/openapi_client/docs/PortainerAccessPolicy.md +29 -0
  173. ptctools/portainer_client/openapi_client/docs/PortainerAuthenticationMethod.md +16 -0
  174. ptctools/portainer_client/openapi_client/docs/PortainerAutoUpdateSettings.md +33 -0
  175. ptctools/portainer_client/openapi_client/docs/PortainerAzureCredentials.md +31 -0
  176. ptctools/portainer_client/openapi_client/docs/PortainerCustomTemplate.md +43 -0
  177. ptctools/portainer_client/openapi_client/docs/PortainerCustomTemplatePlatform.md +14 -0
  178. ptctools/portainer_client/openapi_client/docs/PortainerCustomTemplateVariableDefinition.md +32 -0
  179. ptctools/portainer_client/openapi_client/docs/PortainerDiagnosticsData.md +32 -0
  180. ptctools/portainer_client/openapi_client/docs/PortainerDockerSnapshot.md +49 -0
  181. ptctools/portainer_client/openapi_client/docs/PortainerEcrData.md +29 -0
  182. ptctools/portainer_client/openapi_client/docs/PortainerEdge.md +32 -0
  183. ptctools/portainer_client/openapi_client/docs/PortainerEdgeGroup.md +35 -0
  184. ptctools/portainer_client/openapi_client/docs/PortainerEdgeJob.md +38 -0
  185. ptctools/portainer_client/openapi_client/docs/PortainerEdgeJobEndpointMeta.md +30 -0
  186. ptctools/portainer_client/openapi_client/docs/PortainerEdgeJobLogsStatus.md +16 -0
  187. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStack.md +40 -0
  188. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStackDeploymentStatus.md +33 -0
  189. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStackDeploymentType.md +12 -0
  190. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStackStatus.md +35 -0
  191. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStackStatusDetails.md +35 -0
  192. ptctools/portainer_client/openapi_client/docs/PortainerEdgeStackStatusType.md +36 -0
  193. ptctools/portainer_client/openapi_client/docs/PortainerEndpoint.md +66 -0
  194. ptctools/portainer_client/openapi_client/docs/PortainerEndpointAgent.md +29 -0
  195. ptctools/portainer_client/openapi_client/docs/PortainerEndpointGroup.md +38 -0
  196. ptctools/portainer_client/openapi_client/docs/PortainerEndpointPostInitMigrations.md +30 -0
  197. ptctools/portainer_client/openapi_client/docs/PortainerEndpointSecuritySettings.md +37 -0
  198. ptctools/portainer_client/openapi_client/docs/PortainerEndpointStatus.md +14 -0
  199. ptctools/portainer_client/openapi_client/docs/PortainerEndpointType.md +24 -0
  200. ptctools/portainer_client/openapi_client/docs/PortainerEnvironmentEdgeSettings.md +32 -0
  201. ptctools/portainer_client/openapi_client/docs/PortainerGithubRegistryData.md +30 -0
  202. ptctools/portainer_client/openapi_client/docs/PortainerGitlabRegistryData.md +31 -0
  203. ptctools/portainer_client/openapi_client/docs/PortainerGlobalDeploymentOptions.md +29 -0
  204. ptctools/portainer_client/openapi_client/docs/PortainerHelmUserRepository.md +31 -0
  205. ptctools/portainer_client/openapi_client/docs/PortainerInternalAuthSettings.md +29 -0
  206. ptctools/portainer_client/openapi_client/docs/PortainerK8sNamespaceInfo.md +38 -0
  207. ptctools/portainer_client/openapi_client/docs/PortainerK8sNodeLimits.md +30 -0
  208. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesConfiguration.md +37 -0
  209. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesData.md +31 -0
  210. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesFlags.md +31 -0
  211. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesIngressClassConfig.md +32 -0
  212. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesSnapshot.md +35 -0
  213. ptctools/portainer_client/openapi_client/docs/PortainerKubernetesStorageClassConfig.md +32 -0
  214. ptctools/portainer_client/openapi_client/docs/PortainerLDAPGroupSearchSettings.md +31 -0
  215. ptctools/portainer_client/openapi_client/docs/PortainerLDAPSearchSettings.md +31 -0
  216. ptctools/portainer_client/openapi_client/docs/PortainerLDAPSettings.md +37 -0
  217. ptctools/portainer_client/openapi_client/docs/PortainerMembershipRole.md +14 -0
  218. ptctools/portainer_client/openapi_client/docs/PortainerOAuthSettings.md +42 -0
  219. ptctools/portainer_client/openapi_client/docs/PortainerOpenAMTConfiguration.md +37 -0
  220. ptctools/portainer_client/openapi_client/docs/PortainerOpenAMTDeviceEnabledFeatures.md +33 -0
  221. ptctools/portainer_client/openapi_client/docs/PortainerPair.md +30 -0
  222. ptctools/portainer_client/openapi_client/docs/PortainerPerformanceMetrics.md +31 -0
  223. ptctools/portainer_client/openapi_client/docs/PortainerQuayRegistryData.md +30 -0
  224. ptctools/portainer_client/openapi_client/docs/PortainerRegistry.md +48 -0
  225. ptctools/portainer_client/openapi_client/docs/PortainerRegistryAccessPolicies.md +31 -0
  226. ptctools/portainer_client/openapi_client/docs/PortainerRegistryManagementConfiguration.md +36 -0
  227. ptctools/portainer_client/openapi_client/docs/PortainerRegistryType.md +26 -0
  228. ptctools/portainer_client/openapi_client/docs/PortainerResourceAccessLevel.md +12 -0
  229. ptctools/portainer_client/openapi_client/docs/PortainerResourceControl.md +39 -0
  230. ptctools/portainer_client/openapi_client/docs/PortainerResourceControlType.md +28 -0
  231. ptctools/portainer_client/openapi_client/docs/PortainerRole.md +33 -0
  232. ptctools/portainer_client/openapi_client/docs/PortainerSSLSettings.md +32 -0
  233. ptctools/portainer_client/openapi_client/docs/PortainerSettings.md +62 -0
  234. ptctools/portainer_client/openapi_client/docs/PortainerStack.md +48 -0
  235. ptctools/portainer_client/openapi_client/docs/PortainerStackDeploymentInfo.md +31 -0
  236. ptctools/portainer_client/openapi_client/docs/PortainerStackOption.md +29 -0
  237. ptctools/portainer_client/openapi_client/docs/PortainerStackStatus.md +14 -0
  238. ptctools/portainer_client/openapi_client/docs/PortainerStackType.md +16 -0
  239. ptctools/portainer_client/openapi_client/docs/PortainerTLSConfiguration.md +33 -0
  240. ptctools/portainer_client/openapi_client/docs/PortainerTag.md +32 -0
  241. ptctools/portainer_client/openapi_client/docs/PortainerTeam.md +30 -0
  242. ptctools/portainer_client/openapi_client/docs/PortainerTeamMembership.md +32 -0
  243. ptctools/portainer_client/openapi_client/docs/PortainerTeamResourceAccess.md +30 -0
  244. ptctools/portainer_client/openapi_client/docs/PortainerTemplate.md +52 -0
  245. ptctools/portainer_client/openapi_client/docs/PortainerTemplateEnv.md +34 -0
  246. ptctools/portainer_client/openapi_client/docs/PortainerTemplateEnvSelect.md +31 -0
  247. ptctools/portainer_client/openapi_client/docs/PortainerTemplateRepository.md +30 -0
  248. ptctools/portainer_client/openapi_client/docs/PortainerTemplateType.md +16 -0
  249. ptctools/portainer_client/openapi_client/docs/PortainerTemplateVolume.md +31 -0
  250. ptctools/portainer_client/openapi_client/docs/PortainerUser.md +37 -0
  251. ptctools/portainer_client/openapi_client/docs/PortainerUserResourceAccess.md +30 -0
  252. ptctools/portainer_client/openapi_client/docs/PortainerUserRole.md +14 -0
  253. ptctools/portainer_client/openapi_client/docs/PortainerUserThemeSettings.md +29 -0
  254. ptctools/portainer_client/openapi_client/docs/PortainerWebhook.md +34 -0
  255. ptctools/portainer_client/openapi_client/docs/PortainerWebhookType.md +12 -0
  256. ptctools/portainer_client/openapi_client/docs/RegistriesApi.md +554 -0
  257. ptctools/portainer_client/openapi_client/docs/RegistriesRegistryConfigurePayload.md +37 -0
  258. ptctools/portainer_client/openapi_client/docs/RegistriesRegistryCreatePayload.md +38 -0
  259. ptctools/portainer_client/openapi_client/docs/RegistriesRegistryUpdatePayload.md +37 -0
  260. ptctools/portainer_client/openapi_client/docs/ReleaseChart.md +34 -0
  261. ptctools/portainer_client/openapi_client/docs/ReleaseChartReference.md +31 -0
  262. ptctools/portainer_client/openapi_client/docs/ReleaseDependency.md +36 -0
  263. ptctools/portainer_client/openapi_client/docs/ReleaseFile.md +30 -0
  264. ptctools/portainer_client/openapi_client/docs/ReleaseLock.md +31 -0
  265. ptctools/portainer_client/openapi_client/docs/ReleaseMaintainer.md +31 -0
  266. ptctools/portainer_client/openapi_client/docs/ReleaseMetadata.md +45 -0
  267. ptctools/portainer_client/openapi_client/docs/ReleaseReleaseElement.md +35 -0
  268. ptctools/portainer_client/openapi_client/docs/ReleaseValues.md +30 -0
  269. ptctools/portainer_client/openapi_client/docs/ResourceControlsApi.md +283 -0
  270. ptctools/portainer_client/openapi_client/docs/ResourceQuantity.md +29 -0
  271. ptctools/portainer_client/openapi_client/docs/ResourcecontrolsResourceControlCreatePayload.md +35 -0
  272. ptctools/portainer_client/openapi_client/docs/ResourcecontrolsResourceControlUpdatePayload.md +32 -0
  273. ptctools/portainer_client/openapi_client/docs/RolesApi.md +93 -0
  274. ptctools/portainer_client/openapi_client/docs/SettingsApi.md +251 -0
  275. ptctools/portainer_client/openapi_client/docs/SettingsPublicSettingsResponse.md +42 -0
  276. ptctools/portainer_client/openapi_client/docs/SettingsPublicSettingsResponseEdge.md +32 -0
  277. ptctools/portainer_client/openapi_client/docs/SettingsSettingsUpdatePayload.md +47 -0
  278. ptctools/portainer_client/openapi_client/docs/SslApi.md +184 -0
  279. ptctools/portainer_client/openapi_client/docs/SslSslUpdatePayload.md +31 -0
  280. ptctools/portainer_client/openapi_client/docs/StacksApi.md +2064 -0
  281. ptctools/portainer_client/openapi_client/docs/StacksComposeStackFromFileContentPayload.md +32 -0
  282. ptctools/portainer_client/openapi_client/docs/StacksComposeStackFromGitRepositoryPayload.md +40 -0
  283. ptctools/portainer_client/openapi_client/docs/StacksKubernetesGitDeploymentPayload.md +40 -0
  284. ptctools/portainer_client/openapi_client/docs/StacksKubernetesManifestURLDeploymentPayload.md +32 -0
  285. ptctools/portainer_client/openapi_client/docs/StacksKubernetesStringDeploymentPayload.md +33 -0
  286. ptctools/portainer_client/openapi_client/docs/StacksStackFileResponse.md +29 -0
  287. ptctools/portainer_client/openapi_client/docs/StacksStackGitRedployPayload.md +37 -0
  288. ptctools/portainer_client/openapi_client/docs/StacksStackGitUpdatePayload.md +37 -0
  289. ptctools/portainer_client/openapi_client/docs/StacksStackMigratePayload.md +31 -0
  290. ptctools/portainer_client/openapi_client/docs/StacksSwarmStackFromFileContentPayload.md +33 -0
  291. ptctools/portainer_client/openapi_client/docs/StacksSwarmStackFromGitRepositoryPayload.md +41 -0
  292. ptctools/portainer_client/openapi_client/docs/StacksUpdateSwarmStackPayload.md +32 -0
  293. ptctools/portainer_client/openapi_client/docs/StatusApi.md +75 -0
  294. ptctools/portainer_client/openapi_client/docs/SwarmServiceUpdateResponse.md +29 -0
  295. ptctools/portainer_client/openapi_client/docs/SystemApi.md +392 -0
  296. ptctools/portainer_client/openapi_client/docs/SystemNodesCountResponse.md +29 -0
  297. ptctools/portainer_client/openapi_client/docs/SystemStatus.md +30 -0
  298. ptctools/portainer_client/openapi_client/docs/SystemSystemInfoResponse.md +31 -0
  299. ptctools/portainer_client/openapi_client/docs/SystemVersionResponse.md +37 -0
  300. ptctools/portainer_client/openapi_client/docs/TagsApi.md +273 -0
  301. ptctools/portainer_client/openapi_client/docs/TagsTagCreatePayload.md +29 -0
  302. ptctools/portainer_client/openapi_client/docs/TeamMembershipsApi.md +463 -0
  303. ptctools/portainer_client/openapi_client/docs/TeammembershipsTeamMembershipCreatePayload.md +31 -0
  304. ptctools/portainer_client/openapi_client/docs/TeammembershipsTeamMembershipUpdatePayload.md +31 -0
  305. ptctools/portainer_client/openapi_client/docs/TeamsApi.md +467 -0
  306. ptctools/portainer_client/openapi_client/docs/TeamsTeamCreatePayload.md +30 -0
  307. ptctools/portainer_client/openapi_client/docs/TeamsTeamUpdatePayload.md +29 -0
  308. ptctools/portainer_client/openapi_client/docs/TemplatesApi.md +183 -0
  309. ptctools/portainer_client/openapi_client/docs/TemplatesFileResponse.md +29 -0
  310. ptctools/portainer_client/openapi_client/docs/TemplatesListResponse.md +30 -0
  311. ptctools/portainer_client/openapi_client/docs/UnstructuredUnstructured.md +29 -0
  312. ptctools/portainer_client/openapi_client/docs/UploadApi.md +99 -0
  313. ptctools/portainer_client/openapi_client/docs/UsersAccessTokenResponse.md +30 -0
  314. ptctools/portainer_client/openapi_client/docs/UsersAddHelmRepoUrlPayload.md +29 -0
  315. ptctools/portainer_client/openapi_client/docs/UsersAdminInitPayload.md +30 -0
  316. ptctools/portainer_client/openapi_client/docs/UsersApi.md +1159 -0
  317. ptctools/portainer_client/openapi_client/docs/UsersHelmUserRepositoryResponse.md +30 -0
  318. ptctools/portainer_client/openapi_client/docs/UsersThemePayload.md +29 -0
  319. ptctools/portainer_client/openapi_client/docs/UsersUserAccessTokenCreatePayload.md +30 -0
  320. ptctools/portainer_client/openapi_client/docs/UsersUserCreatePayload.md +31 -0
  321. ptctools/portainer_client/openapi_client/docs/UsersUserUpdatePasswordPayload.md +30 -0
  322. ptctools/portainer_client/openapi_client/docs/UsersUserUpdatePayload.md +34 -0
  323. ptctools/portainer_client/openapi_client/docs/V1AppArmorProfile.md +30 -0
  324. ptctools/portainer_client/openapi_client/docs/V1AppArmorProfileType.md +14 -0
  325. ptctools/portainer_client/openapi_client/docs/V1CSIPersistentVolumeSource.md +38 -0
  326. ptctools/portainer_client/openapi_client/docs/V1Capabilities.md +30 -0
  327. ptctools/portainer_client/openapi_client/docs/V1ClientIPConfig.md +29 -0
  328. ptctools/portainer_client/openapi_client/docs/V1Condition.md +34 -0
  329. ptctools/portainer_client/openapi_client/docs/V1ConfigMapEnvSource.md +30 -0
  330. ptctools/portainer_client/openapi_client/docs/V1ConfigMapKeySelector.md +31 -0
  331. ptctools/portainer_client/openapi_client/docs/V1Container.md +52 -0
  332. ptctools/portainer_client/openapi_client/docs/V1ContainerPort.md +33 -0
  333. ptctools/portainer_client/openapi_client/docs/V1ContainerResizePolicy.md +30 -0
  334. ptctools/portainer_client/openapi_client/docs/V1ContainerRestartPolicy.md +10 -0
  335. ptctools/portainer_client/openapi_client/docs/V1Duration.md +29 -0
  336. ptctools/portainer_client/openapi_client/docs/V1EnvFromSource.md +31 -0
  337. ptctools/portainer_client/openapi_client/docs/V1EnvVar.md +31 -0
  338. ptctools/portainer_client/openapi_client/docs/V1EnvVarSource.md +32 -0
  339. ptctools/portainer_client/openapi_client/docs/V1ExecAction.md +29 -0
  340. ptctools/portainer_client/openapi_client/docs/V1GRPCAction.md +30 -0
  341. ptctools/portainer_client/openapi_client/docs/V1HTTPGetAction.md +33 -0
  342. ptctools/portainer_client/openapi_client/docs/V1HTTPHeader.md +30 -0
  343. ptctools/portainer_client/openapi_client/docs/V1IPFamily.md +14 -0
  344. ptctools/portainer_client/openapi_client/docs/V1IPFamilyPolicy.md +14 -0
  345. ptctools/portainer_client/openapi_client/docs/V1LabelSelector.md +30 -0
  346. ptctools/portainer_client/openapi_client/docs/V1LabelSelectorOperator.md +16 -0
  347. ptctools/portainer_client/openapi_client/docs/V1LabelSelectorRequirement.md +31 -0
  348. ptctools/portainer_client/openapi_client/docs/V1Lifecycle.md +31 -0
  349. ptctools/portainer_client/openapi_client/docs/V1LifecycleHandler.md +32 -0
  350. ptctools/portainer_client/openapi_client/docs/V1ListMeta.md +32 -0
  351. ptctools/portainer_client/openapi_client/docs/V1LoadBalancerIPMode.md +12 -0
  352. ptctools/portainer_client/openapi_client/docs/V1LoadBalancerIngress.md +32 -0
  353. ptctools/portainer_client/openapi_client/docs/V1LoadBalancerStatus.md +29 -0
  354. ptctools/portainer_client/openapi_client/docs/V1ManagedFieldsEntry.md +35 -0
  355. ptctools/portainer_client/openapi_client/docs/V1ManagedFieldsOperationType.md +12 -0
  356. ptctools/portainer_client/openapi_client/docs/V1MountPropagationMode.md +14 -0
  357. ptctools/portainer_client/openapi_client/docs/V1NamespaceCondition.md +33 -0
  358. ptctools/portainer_client/openapi_client/docs/V1NamespaceConditionType.md +18 -0
  359. ptctools/portainer_client/openapi_client/docs/V1NamespacePhase.md +12 -0
  360. ptctools/portainer_client/openapi_client/docs/V1NamespaceStatus.md +30 -0
  361. ptctools/portainer_client/openapi_client/docs/V1ObjectFieldSelector.md +30 -0
  362. ptctools/portainer_client/openapi_client/docs/V1ObjectMeta.md +43 -0
  363. ptctools/portainer_client/openapi_client/docs/V1ObjectReference.md +35 -0
  364. ptctools/portainer_client/openapi_client/docs/V1OwnerReference.md +34 -0
  365. ptctools/portainer_client/openapi_client/docs/V1PersistentVolumeAccessMode.md +16 -0
  366. ptctools/portainer_client/openapi_client/docs/V1PersistentVolumeClaimPhase.md +14 -0
  367. ptctools/portainer_client/openapi_client/docs/V1PersistentVolumeMode.md +12 -0
  368. ptctools/portainer_client/openapi_client/docs/V1PersistentVolumeReclaimPolicy.md +14 -0
  369. ptctools/portainer_client/openapi_client/docs/V1PortStatus.md +31 -0
  370. ptctools/portainer_client/openapi_client/docs/V1Probe.md +38 -0
  371. ptctools/portainer_client/openapi_client/docs/V1ProcMountType.md +12 -0
  372. ptctools/portainer_client/openapi_client/docs/V1Protocol.md +14 -0
  373. ptctools/portainer_client/openapi_client/docs/V1PullPolicy.md +14 -0
  374. ptctools/portainer_client/openapi_client/docs/V1RecursiveReadOnlyMode.md +14 -0
  375. ptctools/portainer_client/openapi_client/docs/V1ResourceClaim.md +30 -0
  376. ptctools/portainer_client/openapi_client/docs/V1ResourceFieldSelector.md +31 -0
  377. ptctools/portainer_client/openapi_client/docs/V1ResourceName.md +48 -0
  378. ptctools/portainer_client/openapi_client/docs/V1ResourceQuota.md +33 -0
  379. ptctools/portainer_client/openapi_client/docs/V1ResourceQuotaScope.md +22 -0
  380. ptctools/portainer_client/openapi_client/docs/V1ResourceQuotaSpec.md +31 -0
  381. ptctools/portainer_client/openapi_client/docs/V1ResourceQuotaStatus.md +30 -0
  382. ptctools/portainer_client/openapi_client/docs/V1ResourceRequirements.md +31 -0
  383. ptctools/portainer_client/openapi_client/docs/V1ResourceResizeRestartPolicy.md +12 -0
  384. ptctools/portainer_client/openapi_client/docs/V1RoleRef.md +31 -0
  385. ptctools/portainer_client/openapi_client/docs/V1SELinuxOptions.md +32 -0
  386. ptctools/portainer_client/openapi_client/docs/V1ScopeSelector.md +29 -0
  387. ptctools/portainer_client/openapi_client/docs/V1ScopeSelectorOperator.md +16 -0
  388. ptctools/portainer_client/openapi_client/docs/V1ScopedResourceSelectorRequirement.md +31 -0
  389. ptctools/portainer_client/openapi_client/docs/V1SeccompProfile.md +30 -0
  390. ptctools/portainer_client/openapi_client/docs/V1SeccompProfileType.md +14 -0
  391. ptctools/portainer_client/openapi_client/docs/V1SecretEnvSource.md +30 -0
  392. ptctools/portainer_client/openapi_client/docs/V1SecretKeySelector.md +31 -0
  393. ptctools/portainer_client/openapi_client/docs/V1SecretReference.md +30 -0
  394. ptctools/portainer_client/openapi_client/docs/V1SecurityContext.md +40 -0
  395. ptctools/portainer_client/openapi_client/docs/V1Service.md +33 -0
  396. ptctools/portainer_client/openapi_client/docs/V1ServiceAffinity.md +12 -0
  397. ptctools/portainer_client/openapi_client/docs/V1ServiceExternalTrafficPolicy.md +16 -0
  398. ptctools/portainer_client/openapi_client/docs/V1ServiceInternalTrafficPolicy.md +12 -0
  399. ptctools/portainer_client/openapi_client/docs/V1ServicePort.md +34 -0
  400. ptctools/portainer_client/openapi_client/docs/V1ServiceSpec.md +48 -0
  401. ptctools/portainer_client/openapi_client/docs/V1ServiceStatus.md +30 -0
  402. ptctools/portainer_client/openapi_client/docs/V1ServiceType.md +16 -0
  403. ptctools/portainer_client/openapi_client/docs/V1SessionAffinityConfig.md +29 -0
  404. ptctools/portainer_client/openapi_client/docs/V1Signal.md +138 -0
  405. ptctools/portainer_client/openapi_client/docs/V1SleepAction.md +29 -0
  406. ptctools/portainer_client/openapi_client/docs/V1TCPSocketAction.md +30 -0
  407. ptctools/portainer_client/openapi_client/docs/V1TerminationMessagePolicy.md +12 -0
  408. ptctools/portainer_client/openapi_client/docs/V1URIScheme.md +12 -0
  409. ptctools/portainer_client/openapi_client/docs/V1VolumeDevice.md +30 -0
  410. ptctools/portainer_client/openapi_client/docs/V1VolumeMount.md +35 -0
  411. ptctools/portainer_client/openapi_client/docs/V1WindowsSecurityContextOptions.md +32 -0
  412. ptctools/portainer_client/openapi_client/docs/V1beta1ContainerMetrics.md +30 -0
  413. ptctools/portainer_client/openapi_client/docs/V1beta1NodeMetrics.md +34 -0
  414. ptctools/portainer_client/openapi_client/docs/V1beta1NodeMetricsList.md +32 -0
  415. ptctools/portainer_client/openapi_client/docs/V1beta1PodMetrics.md +34 -0
  416. ptctools/portainer_client/openapi_client/docs/V1beta1PodMetricsList.md +32 -0
  417. ptctools/portainer_client/openapi_client/docs/V2ContainerResourceMetricSource.md +31 -0
  418. ptctools/portainer_client/openapi_client/docs/V2ContainerResourceMetricStatus.md +31 -0
  419. ptctools/portainer_client/openapi_client/docs/V2CrossVersionObjectReference.md +31 -0
  420. ptctools/portainer_client/openapi_client/docs/V2ExternalMetricSource.md +30 -0
  421. ptctools/portainer_client/openapi_client/docs/V2ExternalMetricStatus.md +30 -0
  422. ptctools/portainer_client/openapi_client/docs/V2HPAScalingPolicy.md +31 -0
  423. ptctools/portainer_client/openapi_client/docs/V2HPAScalingPolicyType.md +12 -0
  424. ptctools/portainer_client/openapi_client/docs/V2HPAScalingRules.md +32 -0
  425. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscaler.md +33 -0
  426. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscalerBehavior.md +30 -0
  427. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscalerCondition.md +33 -0
  428. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscalerConditionType.md +14 -0
  429. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscalerSpec.md +33 -0
  430. ptctools/portainer_client/openapi_client/docs/V2HorizontalPodAutoscalerStatus.md +34 -0
  431. ptctools/portainer_client/openapi_client/docs/V2MetricIdentifier.md +30 -0
  432. ptctools/portainer_client/openapi_client/docs/V2MetricSourceType.md +18 -0
  433. ptctools/portainer_client/openapi_client/docs/V2MetricSpec.md +34 -0
  434. ptctools/portainer_client/openapi_client/docs/V2MetricStatus.md +34 -0
  435. ptctools/portainer_client/openapi_client/docs/V2MetricTarget.md +32 -0
  436. ptctools/portainer_client/openapi_client/docs/V2MetricTargetType.md +14 -0
  437. ptctools/portainer_client/openapi_client/docs/V2MetricValueStatus.md +31 -0
  438. ptctools/portainer_client/openapi_client/docs/V2ObjectMetricSource.md +31 -0
  439. ptctools/portainer_client/openapi_client/docs/V2ObjectMetricStatus.md +31 -0
  440. ptctools/portainer_client/openapi_client/docs/V2PodsMetricSource.md +30 -0
  441. ptctools/portainer_client/openapi_client/docs/V2PodsMetricStatus.md +30 -0
  442. ptctools/portainer_client/openapi_client/docs/V2ResourceMetricSource.md +30 -0
  443. ptctools/portainer_client/openapi_client/docs/V2ResourceMetricStatus.md +30 -0
  444. ptctools/portainer_client/openapi_client/docs/V2ScalingPolicySelect.md +14 -0
  445. ptctools/portainer_client/openapi_client/docs/WebhooksApi.md +436 -0
  446. ptctools/portainer_client/openapi_client/docs/WebhooksWebhookCreatePayload.md +32 -0
  447. ptctools/portainer_client/openapi_client/docs/WebhooksWebhookUpdatePayload.md +29 -0
  448. ptctools/portainer_client/openapi_client/docs/WebsocketApi.md +385 -0
  449. ptctools/portainer_client/openapi_client/exceptions.py +220 -0
  450. ptctools/portainer_client/openapi_client/models/__init__.py +389 -0
  451. ptctools/portainer_client/openapi_client/models/auth_authenticate_payload.py +90 -0
  452. ptctools/portainer_client/openapi_client/models/auth_authenticate_response.py +88 -0
  453. ptctools/portainer_client/openapi_client/models/auth_oauth_payload.py +88 -0
  454. ptctools/portainer_client/openapi_client/models/backup_backup_payload.py +88 -0
  455. ptctools/portainer_client/openapi_client/models/backup_restore_payload.py +92 -0
  456. ptctools/portainer_client/openapi_client/models/build_build_info.py +100 -0
  457. ptctools/portainer_client/openapi_client/models/build_dependencies_info.py +94 -0
  458. ptctools/portainer_client/openapi_client/models/build_runtime_info.py +88 -0
  459. ptctools/portainer_client/openapi_client/models/containers_container_gpus_response.py +88 -0
  460. ptctools/portainer_client/openapi_client/models/customtemplates_custom_template_from_file_content_payload.py +114 -0
  461. ptctools/portainer_client/openapi_client/models/customtemplates_custom_template_from_git_repository_payload.py +128 -0
  462. ptctools/portainer_client/openapi_client/models/customtemplates_custom_template_update_payload.py +135 -0
  463. ptctools/portainer_client/openapi_client/models/customtemplates_file_response.py +88 -0
  464. ptctools/portainer_client/openapi_client/models/docker_container_stats.py +96 -0
  465. ptctools/portainer_client/openapi_client/models/docker_dashboard_response.py +106 -0
  466. ptctools/portainer_client/openapi_client/models/docker_images_counters.py +90 -0
  467. ptctools/portainer_client/openapi_client/models/edge_deployer_options_payload.py +90 -0
  468. ptctools/portainer_client/openapi_client/models/edge_registry_credentials.py +92 -0
  469. ptctools/portainer_client/openapi_client/models/edge_stack_payload.py +154 -0
  470. ptctools/portainer_client/openapi_client/models/edgegroups_decorated_edge_group.py +109 -0
  471. ptctools/portainer_client/openapi_client/models/edgegroups_edge_group_create_payload.py +96 -0
  472. ptctools/portainer_client/openapi_client/models/edgegroups_edge_group_update_payload.py +96 -0
  473. ptctools/portainer_client/openapi_client/models/edgejobs_edge_job_create_from_file_content_payload.py +98 -0
  474. ptctools/portainer_client/openapi_client/models/edgejobs_edge_job_file_response.py +88 -0
  475. ptctools/portainer_client/openapi_client/models/edgejobs_edge_job_update_payload.py +98 -0
  476. ptctools/portainer_client/openapi_client/models/edgejobs_file_response.py +88 -0
  477. ptctools/portainer_client/openapi_client/models/edgejobs_task_container.py +95 -0
  478. ptctools/portainer_client/openapi_client/models/edgestacks_edge_stack_from_git_repository_payload.py +114 -0
  479. ptctools/portainer_client/openapi_client/models/edgestacks_edge_stack_from_string_payload.py +99 -0
  480. ptctools/portainer_client/openapi_client/models/edgestacks_stack_file_response.py +88 -0
  481. ptctools/portainer_client/openapi_client/models/edgestacks_update_edge_stack_payload.py +97 -0
  482. ptctools/portainer_client/openapi_client/models/edgestacks_update_status_payload.py +97 -0
  483. ptctools/portainer_client/openapi_client/models/endpointedge_edge_job_response.py +96 -0
  484. ptctools/portainer_client/openapi_client/models/endpointedge_endpoint_edge_status_inspect_response.py +114 -0
  485. ptctools/portainer_client/openapi_client/models/endpointedge_stack_status_response.py +90 -0
  486. ptctools/portainer_client/openapi_client/models/endpointgroups_endpoint_group_create_payload.py +94 -0
  487. ptctools/portainer_client/openapi_client/models/endpointgroups_endpoint_group_update_payload.py +121 -0
  488. ptctools/portainer_client/openapi_client/models/endpoints_dockerhub_status_response.py +90 -0
  489. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_create_global_key_response.py +88 -0
  490. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_delete_batch_partial_response.py +90 -0
  491. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_delete_batch_payload.py +96 -0
  492. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_delete_request.py +90 -0
  493. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_settings_update_payload.py +116 -0
  494. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_update_payload.py +157 -0
  495. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_update_relations_payload.py +101 -0
  496. ptctools/portainer_client/openapi_client/models/endpoints_endpoint_update_relations_payload_relations_value.py +92 -0
  497. ptctools/portainer_client/openapi_client/models/endpoints_force_update_service_payload.py +90 -0
  498. ptctools/portainer_client/openapi_client/models/endpoints_registry_access_payload.py +117 -0
  499. ptctools/portainer_client/openapi_client/models/filesystem_dir_entry.py +95 -0
  500. ptctools/portainer_client/openapi_client/models/github_com_portainer_portainer_pkg_libhelm_release_hook.py +106 -0
  501. ptctools/portainer_client/openapi_client/models/github_com_portainer_portainer_pkg_libhelm_release_hook_execution.py +92 -0
  502. ptctools/portainer_client/openapi_client/models/github_com_portainer_portainer_pkg_libhelm_release_info.py +108 -0
  503. ptctools/portainer_client/openapi_client/models/github_com_portainer_portainer_pkg_libhelm_release_release.py +132 -0
  504. ptctools/portainer_client/openapi_client/models/gitops_file_response.py +88 -0
  505. ptctools/portainer_client/openapi_client/models/gitops_repository_file_preview_payload.py +101 -0
  506. ptctools/portainer_client/openapi_client/models/gittypes_git_authentication.py +95 -0
  507. ptctools/portainer_client/openapi_client/models/gittypes_git_credential_auth_type.py +38 -0
  508. ptctools/portainer_client/openapi_client/models/gittypes_repo_config.py +102 -0
  509. ptctools/portainer_client/openapi_client/models/helm_install_chart_payload.py +100 -0
  510. ptctools/portainer_client/openapi_client/models/images_image_response.py +98 -0
  511. ptctools/portainer_client/openapi_client/models/intstr_int_or_string.py +93 -0
  512. ptctools/portainer_client/openapi_client/models/intstr_type.py +38 -0
  513. ptctools/portainer_client/openapi_client/models/k8s_io_api_core_v1_condition_status.py +39 -0
  514. ptctools/portainer_client/openapi_client/models/k8s_io_api_rbac_v1_subject.py +94 -0
  515. ptctools/portainer_client/openapi_client/models/k8s_io_apimachinery_pkg_apis_meta_v1_condition_status.py +39 -0
  516. ptctools/portainer_client/openapi_client/models/kubernetes_configuration.py +92 -0
  517. ptctools/portainer_client/openapi_client/models/kubernetes_custom_resource_metadata.py +92 -0
  518. ptctools/portainer_client/openapi_client/models/kubernetes_describe_resource_response.py +88 -0
  519. ptctools/portainer_client/openapi_client/models/kubernetes_ingress_rule.py +102 -0
  520. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_application.py +198 -0
  521. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_application_resource.py +94 -0
  522. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_cluster_role.py +94 -0
  523. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_cluster_role_binding.py +112 -0
  524. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_config_map.py +116 -0
  525. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_configuration_owner_resource.py +92 -0
  526. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_cron_job.py +112 -0
  527. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_dashboard.py +100 -0
  528. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_event.py +114 -0
  529. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_event_involved_object.py +94 -0
  530. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_ingress_controller.py +98 -0
  531. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_ingress_info.py +124 -0
  532. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_ingress_path.py +100 -0
  533. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_ingress_tls.py +90 -0
  534. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_job.py +118 -0
  535. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_namespace_details.py +98 -0
  536. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_persistent_volume.py +128 -0
  537. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_persistent_volume_claim.py +136 -0
  538. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_resource_quota.py +92 -0
  539. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_role.py +96 -0
  540. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_role_binding.py +112 -0
  541. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_secret.py +118 -0
  542. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_service_account.py +96 -0
  543. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_service_info.py +140 -0
  544. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_service_ingress.py +90 -0
  545. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_service_port.py +96 -0
  546. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_storage_class.py +95 -0
  547. ptctools/portainer_client/openapi_client/models/kubernetes_k8s_volume_info.py +104 -0
  548. ptctools/portainer_client/openapi_client/models/kubernetes_metadata.py +90 -0
  549. ptctools/portainer_client/openapi_client/models/kubernetes_namespaces_toggle_system_payload.py +88 -0
  550. ptctools/portainer_client/openapi_client/models/kubernetes_pod.py +110 -0
  551. ptctools/portainer_client/openapi_client/models/kubernetes_published_port.py +98 -0
  552. ptctools/portainer_client/openapi_client/models/kubernetes_tls_info.py +88 -0
  553. ptctools/portainer_client/openapi_client/models/ldap_check_payload.py +92 -0
  554. ptctools/portainer_client/openapi_client/models/motd_motd_response.py +96 -0
  555. ptctools/portainer_client/openapi_client/models/oauth2_auth_style.py +39 -0
  556. ptctools/portainer_client/openapi_client/models/openamt_device_action_payload.py +88 -0
  557. ptctools/portainer_client/openapi_client/models/openamt_device_features_payload.py +92 -0
  558. ptctools/portainer_client/openapi_client/models/openamt_open_amt_configure_payload.py +102 -0
  559. ptctools/portainer_client/openapi_client/models/os_file_mode.py +51 -0
  560. ptctools/portainer_client/openapi_client/models/platform_container_platform.py +41 -0
  561. ptctools/portainer_client/openapi_client/models/portainer_access_policy.py +88 -0
  562. ptctools/portainer_client/openapi_client/models/portainer_api_key.py +100 -0
  563. ptctools/portainer_client/openapi_client/models/portainer_authentication_method.py +40 -0
  564. ptctools/portainer_client/openapi_client/models/portainer_auto_update_settings.py +96 -0
  565. ptctools/portainer_client/openapi_client/models/portainer_azure_credentials.py +92 -0
  566. ptctools/portainer_client/openapi_client/models/portainer_custom_template.py +134 -0
  567. ptctools/portainer_client/openapi_client/models/portainer_custom_template_platform.py +39 -0
  568. ptctools/portainer_client/openapi_client/models/portainer_custom_template_variable_definition.py +94 -0
  569. ptctools/portainer_client/openapi_client/models/portainer_diagnostics_data.py +94 -0
  570. ptctools/portainer_client/openapi_client/models/portainer_docker_snapshot.py +136 -0
  571. ptctools/portainer_client/openapi_client/models/portainer_ecr_data.py +88 -0
  572. ptctools/portainer_client/openapi_client/models/portainer_edge.py +94 -0
  573. ptctools/portainer_client/openapi_client/models/portainer_edge_group.py +100 -0
  574. ptctools/portainer_client/openapi_client/models/portainer_edge_job.py +131 -0
  575. ptctools/portainer_client/openapi_client/models/portainer_edge_job_endpoint_meta.py +91 -0
  576. ptctools/portainer_client/openapi_client/models/portainer_edge_job_logs_status.py +40 -0
  577. ptctools/portainer_client/openapi_client/models/portainer_edge_stack.py +124 -0
  578. ptctools/portainer_client/openapi_client/models/portainer_edge_stack_deployment_status.py +97 -0
  579. ptctools/portainer_client/openapi_client/models/portainer_edge_stack_deployment_type.py +38 -0
  580. ptctools/portainer_client/openapi_client/models/portainer_edge_stack_status.py +117 -0
  581. ptctools/portainer_client/openapi_client/models/portainer_edge_stack_status_details.py +100 -0
  582. ptctools/portainer_client/openapi_client/models/portainer_edge_stack_status_type.py +50 -0
  583. ptctools/portainer_client/openapi_client/models/portainer_endpoint.py +233 -0
  584. ptctools/portainer_client/openapi_client/models/portainer_endpoint_agent.py +88 -0
  585. ptctools/portainer_client/openapi_client/models/portainer_endpoint_group.py +139 -0
  586. ptctools/portainer_client/openapi_client/models/portainer_endpoint_post_init_migrations.py +90 -0
  587. ptctools/portainer_client/openapi_client/models/portainer_endpoint_security_settings.py +104 -0
  588. ptctools/portainer_client/openapi_client/models/portainer_endpoint_status.py +39 -0
  589. ptctools/portainer_client/openapi_client/models/portainer_endpoint_type.py +44 -0
  590. ptctools/portainer_client/openapi_client/models/portainer_environment_edge_settings.py +94 -0
  591. ptctools/portainer_client/openapi_client/models/portainer_github_registry_data.py +90 -0
  592. ptctools/portainer_client/openapi_client/models/portainer_gitlab_registry_data.py +92 -0
  593. ptctools/portainer_client/openapi_client/models/portainer_global_deployment_options.py +88 -0
  594. ptctools/portainer_client/openapi_client/models/portainer_helm_user_repository.py +92 -0
  595. ptctools/portainer_client/openapi_client/models/portainer_internal_auth_settings.py +88 -0
  596. ptctools/portainer_client/openapi_client/models/portainer_k8s_namespace_info.py +114 -0
  597. ptctools/portainer_client/openapi_client/models/portainer_k8s_node_limits.py +90 -0
  598. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_configuration.py +120 -0
  599. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_data.py +108 -0
  600. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_flags.py +92 -0
  601. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_ingress_class_config.py +94 -0
  602. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_snapshot.py +108 -0
  603. ptctools/portainer_client/openapi_client/models/portainer_kubernetes_storage_class_config.py +94 -0
  604. ptctools/portainer_client/openapi_client/models/portainer_ldap_group_search_settings.py +92 -0
  605. ptctools/portainer_client/openapi_client/models/portainer_ldap_search_settings.py +92 -0
  606. ptctools/portainer_client/openapi_client/models/portainer_ldap_settings.py +124 -0
  607. ptctools/portainer_client/openapi_client/models/portainer_membership_role.py +39 -0
  608. ptctools/portainer_client/openapi_client/models/portainer_o_auth_settings.py +115 -0
  609. ptctools/portainer_client/openapi_client/models/portainer_open_amt_configuration.py +104 -0
  610. ptctools/portainer_client/openapi_client/models/portainer_open_amt_device_enabled_features.py +96 -0
  611. ptctools/portainer_client/openapi_client/models/portainer_pair.py +90 -0
  612. ptctools/portainer_client/openapi_client/models/portainer_performance_metrics.py +92 -0
  613. ptctools/portainer_client/openapi_client/models/portainer_quay_registry_data.py +90 -0
  614. ptctools/portainer_client/openapi_client/models/portainer_registry.py +185 -0
  615. ptctools/portainer_client/openapi_client/models/portainer_registry_access_policies.py +117 -0
  616. ptctools/portainer_client/openapi_client/models/portainer_registry_management_configuration.py +111 -0
  617. ptctools/portainer_client/openapi_client/models/portainer_registry_type.py +45 -0
  618. ptctools/portainer_client/openapi_client/models/portainer_resource_access_level.py +38 -0
  619. ptctools/portainer_client/openapi_client/models/portainer_resource_control.py +126 -0
  620. ptctools/portainer_client/openapi_client/models/portainer_resource_control_type.py +46 -0
  621. ptctools/portainer_client/openapi_client/models/portainer_role.py +96 -0
  622. ptctools/portainer_client/openapi_client/models/portainer_settings.py +187 -0
  623. ptctools/portainer_client/openapi_client/models/portainer_ssl_settings.py +94 -0
  624. ptctools/portainer_client/openapi_client/models/portainer_stack.py +152 -0
  625. ptctools/portainer_client/openapi_client/models/portainer_stack_deployment_info.py +92 -0
  626. ptctools/portainer_client/openapi_client/models/portainer_stack_option.py +88 -0
  627. ptctools/portainer_client/openapi_client/models/portainer_stack_status.py +39 -0
  628. ptctools/portainer_client/openapi_client/models/portainer_stack_type.py +40 -0
  629. ptctools/portainer_client/openapi_client/models/portainer_tag.py +94 -0
  630. ptctools/portainer_client/openapi_client/models/portainer_team.py +90 -0
  631. ptctools/portainer_client/openapi_client/models/portainer_team_membership.py +95 -0
  632. ptctools/portainer_client/openapi_client/models/portainer_team_resource_access.py +91 -0
  633. ptctools/portainer_client/openapi_client/models/portainer_template.py +163 -0
  634. ptctools/portainer_client/openapi_client/models/portainer_template_env.py +106 -0
  635. ptctools/portainer_client/openapi_client/models/portainer_template_env_select.py +92 -0
  636. ptctools/portainer_client/openapi_client/models/portainer_template_repository.py +90 -0
  637. ptctools/portainer_client/openapi_client/models/portainer_template_type.py +40 -0
  638. ptctools/portainer_client/openapi_client/models/portainer_template_volume.py +92 -0
  639. ptctools/portainer_client/openapi_client/models/portainer_tls_configuration.py +96 -0
  640. ptctools/portainer_client/openapi_client/models/portainer_user.py +109 -0
  641. ptctools/portainer_client/openapi_client/models/portainer_user_resource_access.py +91 -0
  642. ptctools/portainer_client/openapi_client/models/portainer_user_role.py +39 -0
  643. ptctools/portainer_client/openapi_client/models/portainer_user_theme_settings.py +98 -0
  644. ptctools/portainer_client/openapi_client/models/portainer_webhook.py +99 -0
  645. ptctools/portainer_client/openapi_client/models/portainer_webhook_type.py +38 -0
  646. ptctools/portainer_client/openapi_client/models/registries_registry_configure_payload.py +104 -0
  647. ptctools/portainer_client/openapi_client/models/registries_registry_create_payload.py +119 -0
  648. ptctools/portainer_client/openapi_client/models/registries_registry_update_payload.py +125 -0
  649. ptctools/portainer_client/openapi_client/models/release_chart.py +121 -0
  650. ptctools/portainer_client/openapi_client/models/release_chart_reference.py +92 -0
  651. ptctools/portainer_client/openapi_client/models/release_dependency.py +102 -0
  652. ptctools/portainer_client/openapi_client/models/release_file.py +90 -0
  653. ptctools/portainer_client/openapi_client/models/release_lock.py +100 -0
  654. ptctools/portainer_client/openapi_client/models/release_maintainer.py +92 -0
  655. ptctools/portainer_client/openapi_client/models/release_metadata.py +136 -0
  656. ptctools/portainer_client/openapi_client/models/release_release_element.py +100 -0
  657. ptctools/portainer_client/openapi_client/models/release_values.py +90 -0
  658. ptctools/portainer_client/openapi_client/models/resource_quantity.py +98 -0
  659. ptctools/portainer_client/openapi_client/models/resourcecontrols_resource_control_create_payload.py +101 -0
  660. ptctools/portainer_client/openapi_client/models/resourcecontrols_resource_control_update_payload.py +94 -0
  661. ptctools/portainer_client/openapi_client/models/settings_public_settings_response.py +123 -0
  662. ptctools/portainer_client/openapi_client/models/settings_public_settings_response_edge.py +94 -0
  663. ptctools/portainer_client/openapi_client/models/settings_settings_update_payload.py +148 -0
  664. ptctools/portainer_client/openapi_client/models/ssl_ssl_update_payload.py +92 -0
  665. ptctools/portainer_client/openapi_client/models/stacks_compose_stack_from_file_content_payload.py +102 -0
  666. ptctools/portainer_client/openapi_client/models/stacks_compose_stack_from_git_repository_payload.py +122 -0
  667. ptctools/portainer_client/openapi_client/models/stacks_kubernetes_git_deployment_payload.py +114 -0
  668. ptctools/portainer_client/openapi_client/models/stacks_kubernetes_manifest_url_deployment_payload.py +94 -0
  669. ptctools/portainer_client/openapi_client/models/stacks_kubernetes_string_deployment_payload.py +96 -0
  670. ptctools/portainer_client/openapi_client/models/stacks_stack_file_response.py +88 -0
  671. ptctools/portainer_client/openapi_client/models/stacks_stack_git_redploy_payload.py +113 -0
  672. ptctools/portainer_client/openapi_client/models/stacks_stack_git_update_payload.py +117 -0
  673. ptctools/portainer_client/openapi_client/models/stacks_stack_migrate_payload.py +92 -0
  674. ptctools/portainer_client/openapi_client/models/stacks_swarm_stack_from_file_content_payload.py +104 -0
  675. ptctools/portainer_client/openapi_client/models/stacks_swarm_stack_from_git_repository_payload.py +124 -0
  676. ptctools/portainer_client/openapi_client/models/stacks_update_swarm_stack_payload.py +102 -0
  677. ptctools/portainer_client/openapi_client/models/swarm_service_update_response.py +88 -0
  678. ptctools/portainer_client/openapi_client/models/system_nodes_count_response.py +88 -0
  679. ptctools/portainer_client/openapi_client/models/system_status.py +90 -0
  680. ptctools/portainer_client/openapi_client/models/system_system_info_response.py +93 -0
  681. ptctools/portainer_client/openapi_client/models/system_version_response.py +116 -0
  682. ptctools/portainer_client/openapi_client/models/tags_tag_create_payload.py +88 -0
  683. ptctools/portainer_client/openapi_client/models/teammemberships_team_membership_create_payload.py +92 -0
  684. ptctools/portainer_client/openapi_client/models/teammemberships_team_membership_update_payload.py +92 -0
  685. ptctools/portainer_client/openapi_client/models/teams_team_create_payload.py +90 -0
  686. ptctools/portainer_client/openapi_client/models/teams_team_update_payload.py +88 -0
  687. ptctools/portainer_client/openapi_client/models/templates_file_response.py +88 -0
  688. ptctools/portainer_client/openapi_client/models/templates_list_response.py +98 -0
  689. ptctools/portainer_client/openapi_client/models/unstructured_unstructured.py +88 -0
  690. ptctools/portainer_client/openapi_client/models/users_access_token_response.py +94 -0
  691. ptctools/portainer_client/openapi_client/models/users_add_helm_repo_url_payload.py +88 -0
  692. ptctools/portainer_client/openapi_client/models/users_admin_init_payload.py +90 -0
  693. ptctools/portainer_client/openapi_client/models/users_helm_user_repository_response.py +98 -0
  694. ptctools/portainer_client/openapi_client/models/users_theme_payload.py +98 -0
  695. ptctools/portainer_client/openapi_client/models/users_user_access_token_create_payload.py +90 -0
  696. ptctools/portainer_client/openapi_client/models/users_user_create_payload.py +92 -0
  697. ptctools/portainer_client/openapi_client/models/users_user_update_password_payload.py +90 -0
  698. ptctools/portainer_client/openapi_client/models/users_user_update_payload.py +102 -0
  699. ptctools/portainer_client/openapi_client/models/v1_app_armor_profile.py +91 -0
  700. ptctools/portainer_client/openapi_client/models/v1_app_armor_profile_type.py +39 -0
  701. ptctools/portainer_client/openapi_client/models/v1_capabilities.py +90 -0
  702. ptctools/portainer_client/openapi_client/models/v1_client_ip_config.py +88 -0
  703. ptctools/portainer_client/openapi_client/models/v1_condition.py +99 -0
  704. ptctools/portainer_client/openapi_client/models/v1_config_map_env_source.py +90 -0
  705. ptctools/portainer_client/openapi_client/models/v1_config_map_key_selector.py +92 -0
  706. ptctools/portainer_client/openapi_client/models/v1_container.py +207 -0
  707. ptctools/portainer_client/openapi_client/models/v1_container_port.py +97 -0
  708. ptctools/portainer_client/openapi_client/models/v1_container_resize_policy.py +92 -0
  709. ptctools/portainer_client/openapi_client/models/v1_container_restart_policy.py +37 -0
  710. ptctools/portainer_client/openapi_client/models/v1_csi_persistent_volume_source.py +122 -0
  711. ptctools/portainer_client/openapi_client/models/v1_duration.py +88 -0
  712. ptctools/portainer_client/openapi_client/models/v1_env_from_source.py +100 -0
  713. ptctools/portainer_client/openapi_client/models/v1_env_var.py +96 -0
  714. ptctools/portainer_client/openapi_client/models/v1_env_var_source.py +110 -0
  715. ptctools/portainer_client/openapi_client/models/v1_exec_action.py +88 -0
  716. ptctools/portainer_client/openapi_client/models/v1_grpc_action.py +90 -0
  717. ptctools/portainer_client/openapi_client/models/v1_http_get_action.py +109 -0
  718. ptctools/portainer_client/openapi_client/models/v1_http_header.py +90 -0
  719. ptctools/portainer_client/openapi_client/models/v1_ip_family.py +39 -0
  720. ptctools/portainer_client/openapi_client/models/v1_ip_family_policy.py +39 -0
  721. ptctools/portainer_client/openapi_client/models/v1_label_selector.py +98 -0
  722. ptctools/portainer_client/openapi_client/models/v1_label_selector_operator.py +40 -0
  723. ptctools/portainer_client/openapi_client/models/v1_label_selector_requirement.py +93 -0
  724. ptctools/portainer_client/openapi_client/models/v1_lifecycle.py +100 -0
  725. ptctools/portainer_client/openapi_client/models/v1_lifecycle_handler.py +110 -0
  726. ptctools/portainer_client/openapi_client/models/v1_list_meta.py +94 -0
  727. ptctools/portainer_client/openapi_client/models/v1_load_balancer_ingress.py +103 -0
  728. ptctools/portainer_client/openapi_client/models/v1_load_balancer_ip_mode.py +38 -0
  729. ptctools/portainer_client/openapi_client/models/v1_load_balancer_status.py +96 -0
  730. ptctools/portainer_client/openapi_client/models/v1_managed_fields_entry.py +101 -0
  731. ptctools/portainer_client/openapi_client/models/v1_managed_fields_operation_type.py +38 -0
  732. ptctools/portainer_client/openapi_client/models/v1_mount_propagation_mode.py +39 -0
  733. ptctools/portainer_client/openapi_client/models/v1_namespace_condition.py +98 -0
  734. ptctools/portainer_client/openapi_client/models/v1_namespace_condition_type.py +41 -0
  735. ptctools/portainer_client/openapi_client/models/v1_namespace_phase.py +38 -0
  736. ptctools/portainer_client/openapi_client/models/v1_namespace_status.py +99 -0
  737. ptctools/portainer_client/openapi_client/models/v1_object_field_selector.py +90 -0
  738. ptctools/portainer_client/openapi_client/models/v1_object_meta.py +132 -0
  739. ptctools/portainer_client/openapi_client/models/v1_object_reference.py +100 -0
  740. ptctools/portainer_client/openapi_client/models/v1_owner_reference.py +98 -0
  741. ptctools/portainer_client/openapi_client/models/v1_persistent_volume_access_mode.py +40 -0
  742. ptctools/portainer_client/openapi_client/models/v1_persistent_volume_claim_phase.py +39 -0
  743. ptctools/portainer_client/openapi_client/models/v1_persistent_volume_mode.py +38 -0
  744. ptctools/portainer_client/openapi_client/models/v1_persistent_volume_reclaim_policy.py +39 -0
  745. ptctools/portainer_client/openapi_client/models/v1_port_status.py +93 -0
  746. ptctools/portainer_client/openapi_client/models/v1_probe.py +122 -0
  747. ptctools/portainer_client/openapi_client/models/v1_proc_mount_type.py +38 -0
  748. ptctools/portainer_client/openapi_client/models/v1_protocol.py +39 -0
  749. ptctools/portainer_client/openapi_client/models/v1_pull_policy.py +39 -0
  750. ptctools/portainer_client/openapi_client/models/v1_recursive_read_only_mode.py +39 -0
  751. ptctools/portainer_client/openapi_client/models/v1_resource_claim.py +90 -0
  752. ptctools/portainer_client/openapi_client/models/v1_resource_field_selector.py +96 -0
  753. ptctools/portainer_client/openapi_client/models/v1_resource_name.py +56 -0
  754. ptctools/portainer_client/openapi_client/models/v1_resource_quota.py +108 -0
  755. ptctools/portainer_client/openapi_client/models/v1_resource_quota_scope.py +43 -0
  756. ptctools/portainer_client/openapi_client/models/v1_resource_quota_spec.py +110 -0
  757. ptctools/portainer_client/openapi_client/models/v1_resource_quota_status.py +115 -0
  758. ptctools/portainer_client/openapi_client/models/v1_resource_requirements.py +125 -0
  759. ptctools/portainer_client/openapi_client/models/v1_resource_resize_restart_policy.py +38 -0
  760. ptctools/portainer_client/openapi_client/models/v1_role_ref.py +92 -0
  761. ptctools/portainer_client/openapi_client/models/v1_scope_selector.py +96 -0
  762. ptctools/portainer_client/openapi_client/models/v1_scope_selector_operator.py +40 -0
  763. ptctools/portainer_client/openapi_client/models/v1_scoped_resource_selector_requirement.py +94 -0
  764. ptctools/portainer_client/openapi_client/models/v1_se_linux_options.py +94 -0
  765. ptctools/portainer_client/openapi_client/models/v1_seccomp_profile.py +91 -0
  766. ptctools/portainer_client/openapi_client/models/v1_seccomp_profile_type.py +39 -0
  767. ptctools/portainer_client/openapi_client/models/v1_secret_env_source.py +90 -0
  768. ptctools/portainer_client/openapi_client/models/v1_secret_key_selector.py +92 -0
  769. ptctools/portainer_client/openapi_client/models/v1_secret_reference.py +90 -0
  770. ptctools/portainer_client/openapi_client/models/v1_security_context.py +131 -0
  771. ptctools/portainer_client/openapi_client/models/v1_service.py +108 -0
  772. ptctools/portainer_client/openapi_client/models/v1_service_affinity.py +38 -0
  773. ptctools/portainer_client/openapi_client/models/v1_service_external_traffic_policy.py +40 -0
  774. ptctools/portainer_client/openapi_client/models/v1_service_internal_traffic_policy.py +38 -0
  775. ptctools/portainer_client/openapi_client/models/v1_service_port.py +103 -0
  776. ptctools/portainer_client/openapi_client/models/v1_service_spec.py +144 -0
  777. ptctools/portainer_client/openapi_client/models/v1_service_status.py +102 -0
  778. ptctools/portainer_client/openapi_client/models/v1_service_type.py +40 -0
  779. ptctools/portainer_client/openapi_client/models/v1_session_affinity_config.py +92 -0
  780. ptctools/portainer_client/openapi_client/models/v1_signal.py +101 -0
  781. ptctools/portainer_client/openapi_client/models/v1_sleep_action.py +88 -0
  782. ptctools/portainer_client/openapi_client/models/v1_tcp_socket_action.py +94 -0
  783. ptctools/portainer_client/openapi_client/models/v1_termination_message_policy.py +38 -0
  784. ptctools/portainer_client/openapi_client/models/v1_uri_scheme.py +38 -0
  785. ptctools/portainer_client/openapi_client/models/v1_volume_device.py +90 -0
  786. ptctools/portainer_client/openapi_client/models/v1_volume_mount.py +102 -0
  787. ptctools/portainer_client/openapi_client/models/v1_windows_security_context_options.py +94 -0
  788. ptctools/portainer_client/openapi_client/models/v1beta1_container_metrics.py +103 -0
  789. ptctools/portainer_client/openapi_client/models/v1beta1_node_metrics.py +119 -0
  790. ptctools/portainer_client/openapi_client/models/v1beta1_node_metrics_list.py +106 -0
  791. ptctools/portainer_client/openapi_client/models/v1beta1_pod_metrics.py +114 -0
  792. ptctools/portainer_client/openapi_client/models/v1beta1_pod_metrics_list.py +106 -0
  793. ptctools/portainer_client/openapi_client/models/v2_container_resource_metric_source.py +97 -0
  794. ptctools/portainer_client/openapi_client/models/v2_container_resource_metric_status.py +97 -0
  795. ptctools/portainer_client/openapi_client/models/v2_cross_version_object_reference.py +92 -0
  796. ptctools/portainer_client/openapi_client/models/v2_external_metric_source.py +98 -0
  797. ptctools/portainer_client/openapi_client/models/v2_external_metric_status.py +98 -0
  798. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler.py +108 -0
  799. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler_behavior.py +97 -0
  800. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler_condition.py +98 -0
  801. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler_condition_type.py +39 -0
  802. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler_spec.py +112 -0
  803. ptctools/portainer_client/openapi_client/models/v2_horizontal_pod_autoscaler_status.py +114 -0
  804. ptctools/portainer_client/openapi_client/models/v2_hpa_scaling_policy.py +93 -0
  805. ptctools/portainer_client/openapi_client/models/v2_hpa_scaling_policy_type.py +38 -0
  806. ptctools/portainer_client/openapi_client/models/v2_hpa_scaling_rules.py +107 -0
  807. ptctools/portainer_client/openapi_client/models/v2_metric_identifier.py +94 -0
  808. ptctools/portainer_client/openapi_client/models/v2_metric_source_type.py +41 -0
  809. ptctools/portainer_client/openapi_client/models/v2_metric_spec.py +119 -0
  810. ptctools/portainer_client/openapi_client/models/v2_metric_status.py +119 -0
  811. ptctools/portainer_client/openapi_client/models/v2_metric_target.py +102 -0
  812. ptctools/portainer_client/openapi_client/models/v2_metric_target_type.py +39 -0
  813. ptctools/portainer_client/openapi_client/models/v2_metric_value_status.py +99 -0
  814. ptctools/portainer_client/openapi_client/models/v2_object_metric_source.py +104 -0
  815. ptctools/portainer_client/openapi_client/models/v2_object_metric_status.py +104 -0
  816. ptctools/portainer_client/openapi_client/models/v2_pods_metric_source.py +98 -0
  817. ptctools/portainer_client/openapi_client/models/v2_pods_metric_status.py +98 -0
  818. ptctools/portainer_client/openapi_client/models/v2_resource_metric_source.py +95 -0
  819. ptctools/portainer_client/openapi_client/models/v2_resource_metric_status.py +95 -0
  820. ptctools/portainer_client/openapi_client/models/v2_scaling_policy_select.py +39 -0
  821. ptctools/portainer_client/openapi_client/models/webhooks_webhook_create_payload.py +95 -0
  822. ptctools/portainer_client/openapi_client/models/webhooks_webhook_update_payload.py +88 -0
  823. ptctools/portainer_client/openapi_client/rest.py +264 -0
  824. ptctools/portainer_client/openapi_client/test/__init__.py +0 -0
  825. ptctools/portainer_client/openapi_client/test/test_auth_api.py +53 -0
  826. ptctools/portainer_client/openapi_client/test/test_auth_authenticate_payload.py +55 -0
  827. ptctools/portainer_client/openapi_client/test/test_auth_authenticate_response.py +52 -0
  828. ptctools/portainer_client/openapi_client/test/test_auth_oauth_payload.py +52 -0
  829. ptctools/portainer_client/openapi_client/test/test_backup_api.py +46 -0
  830. ptctools/portainer_client/openapi_client/test/test_backup_backup_payload.py +52 -0
  831. ptctools/portainer_client/openapi_client/test/test_backup_restore_payload.py +56 -0
  832. ptctools/portainer_client/openapi_client/test/test_build_build_info.py +58 -0
  833. ptctools/portainer_client/openapi_client/test/test_build_dependencies_info.py +55 -0
  834. ptctools/portainer_client/openapi_client/test/test_build_runtime_info.py +54 -0
  835. ptctools/portainer_client/openapi_client/test/test_containers_container_gpus_response.py +52 -0
  836. ptctools/portainer_client/openapi_client/test/test_custom_templates_api.py +95 -0
  837. ptctools/portainer_client/openapi_client/test/test_customtemplates_custom_template_from_file_content_payload.py +70 -0
  838. ptctools/portainer_client/openapi_client/test/test_customtemplates_custom_template_from_git_repository_payload.py +77 -0
  839. ptctools/portainer_client/openapi_client/test/test_customtemplates_custom_template_update_payload.py +81 -0
  840. ptctools/portainer_client/openapi_client/test/test_customtemplates_file_response.py +52 -0
  841. ptctools/portainer_client/openapi_client/test/test_docker_api.py +53 -0
  842. ptctools/portainer_client/openapi_client/test/test_docker_container_stats.py +56 -0
  843. ptctools/portainer_client/openapi_client/test/test_docker_dashboard_response.py +64 -0
  844. ptctools/portainer_client/openapi_client/test/test_docker_images_counters.py +53 -0
  845. ptctools/portainer_client/openapi_client/test/test_edge_api.py +46 -0
  846. ptctools/portainer_client/openapi_client/test/test_edge_deployer_options_payload.py +53 -0
  847. ptctools/portainer_client/openapi_client/test/test_edge_groups_api.py +67 -0
  848. ptctools/portainer_client/openapi_client/test/test_edge_jobs_api.py +109 -0
  849. ptctools/portainer_client/openapi_client/test/test_edge_registry_credentials.py +54 -0
  850. ptctools/portainer_client/openapi_client/test/test_edge_stack_payload.py +88 -0
  851. ptctools/portainer_client/openapi_client/test/test_edge_stacks_api.py +102 -0
  852. ptctools/portainer_client/openapi_client/test/test_edgegroups_decorated_edge_group.py +70 -0
  853. ptctools/portainer_client/openapi_client/test/test_edgegroups_edge_group_create_payload.py +60 -0
  854. ptctools/portainer_client/openapi_client/test/test_edgegroups_edge_group_update_payload.py +60 -0
  855. ptctools/portainer_client/openapi_client/test/test_edgejobs_edge_job_create_from_file_content_payload.py +61 -0
  856. ptctools/portainer_client/openapi_client/test/test_edgejobs_edge_job_file_response.py +52 -0
  857. ptctools/portainer_client/openapi_client/test/test_edgejobs_edge_job_update_payload.py +61 -0
  858. ptctools/portainer_client/openapi_client/test/test_edgejobs_file_response.py +52 -0
  859. ptctools/portainer_client/openapi_client/test/test_edgejobs_task_container.py +55 -0
  860. ptctools/portainer_client/openapi_client/test/test_edgestacks_edge_stack_from_git_repository_payload.py +69 -0
  861. ptctools/portainer_client/openapi_client/test/test_edgestacks_edge_stack_from_string_payload.py +67 -0
  862. ptctools/portainer_client/openapi_client/test/test_edgestacks_stack_file_response.py +52 -0
  863. ptctools/portainer_client/openapi_client/test/test_edgestacks_update_edge_stack_payload.py +58 -0
  864. ptctools/portainer_client/openapi_client/test/test_edgestacks_update_status_payload.py +56 -0
  865. ptctools/portainer_client/openapi_client/test/test_endpoint_groups_api.py +81 -0
  866. ptctools/portainer_client/openapi_client/test/test_endpointedge_edge_job_response.py +56 -0
  867. ptctools/portainer_client/openapi_client/test/test_endpointedge_endpoint_edge_status_inspect_response.py +68 -0
  868. ptctools/portainer_client/openapi_client/test/test_endpointedge_stack_status_response.py +53 -0
  869. ptctools/portainer_client/openapi_client/test/test_endpointgroups_endpoint_group_create_payload.py +56 -0
  870. ptctools/portainer_client/openapi_client/test/test_endpointgroups_endpoint_group_update_payload.py +62 -0
  871. ptctools/portainer_client/openapi_client/test/test_endpoints_api.py +179 -0
  872. ptctools/portainer_client/openapi_client/test/test_endpoints_dockerhub_status_response.py +53 -0
  873. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_create_global_key_response.py +52 -0
  874. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_delete_batch_partial_response.py +57 -0
  875. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_delete_batch_payload.py +56 -0
  876. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_delete_request.py +53 -0
  877. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_settings_update_payload.py +66 -0
  878. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_update_payload.py +131 -0
  879. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_update_relations_payload.py +61 -0
  880. ptctools/portainer_client/openapi_client/test/test_endpoints_endpoint_update_relations_payload_relations_value.py +58 -0
  881. ptctools/portainer_client/openapi_client/test/test_endpoints_force_update_service_payload.py +53 -0
  882. ptctools/portainer_client/openapi_client/test/test_endpoints_registry_access_payload.py +62 -0
  883. ptctools/portainer_client/openapi_client/test/test_filesystem_dir_entry.py +55 -0
  884. ptctools/portainer_client/openapi_client/test/test_github_com_portainer_portainer_pkg_libhelm_release_hook.py +66 -0
  885. ptctools/portainer_client/openapi_client/test/test_github_com_portainer_portainer_pkg_libhelm_release_hook_execution.py +54 -0
  886. ptctools/portainer_client/openapi_client/test/test_github_com_portainer_portainer_pkg_libhelm_release_info.py +61 -0
  887. ptctools/portainer_client/openapi_client/test/test_github_com_portainer_portainer_pkg_libhelm_release_release.py +112 -0
  888. ptctools/portainer_client/openapi_client/test/test_gitops_api.py +39 -0
  889. ptctools/portainer_client/openapi_client/test/test_gitops_file_response.py +52 -0
  890. ptctools/portainer_client/openapi_client/test/test_gitops_repository_file_preview_payload.py +59 -0
  891. ptctools/portainer_client/openapi_client/test/test_gittypes_git_authentication.py +55 -0
  892. ptctools/portainer_client/openapi_client/test/test_gittypes_git_credential_auth_type.py +34 -0
  893. ptctools/portainer_client/openapi_client/test/test_gittypes_repo_config.py +61 -0
  894. ptctools/portainer_client/openapi_client/test/test_helm_api.py +109 -0
  895. ptctools/portainer_client/openapi_client/test/test_helm_install_chart_payload.py +58 -0
  896. ptctools/portainer_client/openapi_client/test/test_images_image_response.py +59 -0
  897. ptctools/portainer_client/openapi_client/test/test_intel_api.py +74 -0
  898. ptctools/portainer_client/openapi_client/test/test_intstr_int_or_string.py +54 -0
  899. ptctools/portainer_client/openapi_client/test/test_intstr_type.py +34 -0
  900. ptctools/portainer_client/openapi_client/test/test_k8s_io_api_core_v1_condition_status.py +34 -0
  901. ptctools/portainer_client/openapi_client/test/test_k8s_io_api_rbac_v1_subject.py +55 -0
  902. ptctools/portainer_client/openapi_client/test/test_k8s_io_apimachinery_pkg_apis_meta_v1_condition_status.py +34 -0
  903. ptctools/portainer_client/openapi_client/test/test_kubernetes_api.py +480 -0
  904. ptctools/portainer_client/openapi_client/test/test_kubernetes_configuration.py +54 -0
  905. ptctools/portainer_client/openapi_client/test/test_kubernetes_custom_resource_metadata.py +54 -0
  906. ptctools/portainer_client/openapi_client/test/test_kubernetes_describe_resource_response.py +52 -0
  907. ptctools/portainer_client/openapi_client/test/test_kubernetes_ingress_rule.py +60 -0
  908. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_application.py +152 -0
  909. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_application_resource.py +55 -0
  910. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_cluster_role.py +55 -0
  911. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_cluster_role_binding.py +67 -0
  912. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_config_map.py +73 -0
  913. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_configuration_owner_resource.py +54 -0
  914. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_cron_job.py +138 -0
  915. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_dashboard.py +58 -0
  916. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_event.py +67 -0
  917. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_event_involved_object.py +55 -0
  918. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_ingress_controller.py +57 -0
  919. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_ingress_info.py +83 -0
  920. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_ingress_path.py +58 -0
  921. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_ingress_tls.py +55 -0
  922. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_job.py +127 -0
  923. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_namespace_details.py +60 -0
  924. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_persistent_volume.py +86 -0
  925. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_persistent_volume_claim.py +174 -0
  926. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_resource_quota.py +54 -0
  927. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_role.py +56 -0
  928. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_role_binding.py +67 -0
  929. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_secret.py +74 -0
  930. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_service_account.py +56 -0
  931. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_service_info.py +190 -0
  932. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_service_ingress.py +53 -0
  933. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_service_port.py +56 -0
  934. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_storage_class.py +55 -0
  935. ptctools/portainer_client/openapi_client/test/test_kubernetes_k8s_volume_info.py +213 -0
  936. ptctools/portainer_client/openapi_client/test/test_kubernetes_metadata.py +57 -0
  937. ptctools/portainer_client/openapi_client/test/test_kubernetes_namespaces_toggle_system_payload.py +52 -0
  938. ptctools/portainer_client/openapi_client/test/test_kubernetes_pod.py +65 -0
  939. ptctools/portainer_client/openapi_client/test/test_kubernetes_published_port.py +64 -0
  940. ptctools/portainer_client/openapi_client/test/test_kubernetes_tls_info.py +54 -0
  941. ptctools/portainer_client/openapi_client/test/test_ldap_api.py +39 -0
  942. ptctools/portainer_client/openapi_client/test/test_ldap_check_payload.py +76 -0
  943. ptctools/portainer_client/openapi_client/test/test_motd_api.py +39 -0
  944. ptctools/portainer_client/openapi_client/test/test_motd_motd_response.py +60 -0
  945. ptctools/portainer_client/openapi_client/test/test_oauth2_auth_style.py +34 -0
  946. ptctools/portainer_client/openapi_client/test/test_openamt_device_action_payload.py +52 -0
  947. ptctools/portainer_client/openapi_client/test/test_openamt_device_features_payload.py +57 -0
  948. ptctools/portainer_client/openapi_client/test/test_openamt_open_amt_configure_payload.py +59 -0
  949. ptctools/portainer_client/openapi_client/test/test_os_file_mode.py +34 -0
  950. ptctools/portainer_client/openapi_client/test/test_platform_container_platform.py +34 -0
  951. ptctools/portainer_client/openapi_client/test/test_portainer_access_policy.py +52 -0
  952. ptctools/portainer_client/openapi_client/test/test_portainer_api_key.py +58 -0
  953. ptctools/portainer_client/openapi_client/test/test_portainer_authentication_method.py +34 -0
  954. ptctools/portainer_client/openapi_client/test/test_portainer_auto_update_settings.py +56 -0
  955. ptctools/portainer_client/openapi_client/test/test_portainer_azure_credentials.py +54 -0
  956. ptctools/portainer_client/openapi_client/test/test_portainer_custom_template.py +95 -0
  957. ptctools/portainer_client/openapi_client/test/test_portainer_custom_template_platform.py +34 -0
  958. ptctools/portainer_client/openapi_client/test/test_portainer_custom_template_variable_definition.py +55 -0
  959. ptctools/portainer_client/openapi_client/test/test_portainer_diagnostics_data.py +61 -0
  960. ptctools/portainer_client/openapi_client/test/test_portainer_docker_snapshot.py +87 -0
  961. ptctools/portainer_client/openapi_client/test/test_portainer_ecr_data.py +52 -0
  962. ptctools/portainer_client/openapi_client/test/test_portainer_edge.py +55 -0
  963. ptctools/portainer_client/openapi_client/test/test_portainer_edge_group.py +62 -0
  964. ptctools/portainer_client/openapi_client/test/test_portainer_edge_job.py +71 -0
  965. ptctools/portainer_client/openapi_client/test/test_portainer_edge_job_endpoint_meta.py +53 -0
  966. ptctools/portainer_client/openapi_client/test/test_portainer_edge_job_logs_status.py +34 -0
  967. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack.py +81 -0
  968. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack_deployment_status.py +56 -0
  969. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack_deployment_type.py +34 -0
  970. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack_status.py +75 -0
  971. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack_status_details.py +58 -0
  972. ptctools/portainer_client/openapi_client/test/test_portainer_edge_stack_status_type.py +34 -0
  973. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint.py +222 -0
  974. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_agent.py +52 -0
  975. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_group.py +79 -0
  976. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_post_init_migrations.py +53 -0
  977. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_security_settings.py +60 -0
  978. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_status.py +34 -0
  979. ptctools/portainer_client/openapi_client/test/test_portainer_endpoint_type.py +34 -0
  980. ptctools/portainer_client/openapi_client/test/test_portainer_environment_edge_settings.py +55 -0
  981. ptctools/portainer_client/openapi_client/test/test_portainer_github_registry_data.py +53 -0
  982. ptctools/portainer_client/openapi_client/test/test_portainer_gitlab_registry_data.py +54 -0
  983. ptctools/portainer_client/openapi_client/test/test_portainer_global_deployment_options.py +52 -0
  984. ptctools/portainer_client/openapi_client/test/test_portainer_helm_user_repository.py +54 -0
  985. ptctools/portainer_client/openapi_client/test/test_portainer_internal_auth_settings.py +52 -0
  986. ptctools/portainer_client/openapi_client/test/test_portainer_k8s_namespace_info.py +77 -0
  987. ptctools/portainer_client/openapi_client/test/test_portainer_k8s_node_limits.py +53 -0
  988. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_configuration.py +76 -0
  989. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_data.py +104 -0
  990. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_flags.py +54 -0
  991. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_ingress_class_config.py +57 -0
  992. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_snapshot.py +71 -0
  993. ptctools/portainer_client/openapi_client/test/test_portainer_kubernetes_storage_class_config.py +57 -0
  994. ptctools/portainer_client/openapi_client/test/test_portainer_ldap_group_search_settings.py +54 -0
  995. ptctools/portainer_client/openapi_client/test/test_portainer_ldap_search_settings.py +54 -0
  996. ptctools/portainer_client/openapi_client/test/test_portainer_ldap_settings.py +75 -0
  997. ptctools/portainer_client/openapi_client/test/test_portainer_membership_role.py +34 -0
  998. ptctools/portainer_client/openapi_client/test/test_portainer_o_auth_settings.py +67 -0
  999. ptctools/portainer_client/openapi_client/test/test_portainer_open_amt_configuration.py +60 -0
  1000. ptctools/portainer_client/openapi_client/test/test_portainer_open_amt_device_enabled_features.py +56 -0
  1001. ptctools/portainer_client/openapi_client/test/test_portainer_pair.py +53 -0
  1002. ptctools/portainer_client/openapi_client/test/test_portainer_performance_metrics.py +54 -0
  1003. ptctools/portainer_client/openapi_client/test/test_portainer_quay_registry_data.py +53 -0
  1004. ptctools/portainer_client/openapi_client/test/test_portainer_registry.py +116 -0
  1005. ptctools/portainer_client/openapi_client/test/test_portainer_registry_access_policies.py +62 -0
  1006. ptctools/portainer_client/openapi_client/test/test_portainer_registry_management_configuration.py +65 -0
  1007. ptctools/portainer_client/openapi_client/test/test_portainer_registry_type.py +34 -0
  1008. ptctools/portainer_client/openapi_client/test/test_portainer_resource_access_level.py +34 -0
  1009. ptctools/portainer_client/openapi_client/test/test_portainer_resource_control.py +70 -0
  1010. ptctools/portainer_client/openapi_client/test/test_portainer_resource_control_type.py +34 -0
  1011. ptctools/portainer_client/openapi_client/test/test_portainer_role.py +58 -0
  1012. ptctools/portainer_client/openapi_client/test/test_portainer_settings.py +146 -0
  1013. ptctools/portainer_client/openapi_client/test/test_portainer_ssl_settings.py +55 -0
  1014. ptctools/portainer_client/openapi_client/test/test_portainer_stack.py +106 -0
  1015. ptctools/portainer_client/openapi_client/test/test_portainer_stack_deployment_info.py +54 -0
  1016. ptctools/portainer_client/openapi_client/test/test_portainer_stack_option.py +52 -0
  1017. ptctools/portainer_client/openapi_client/test/test_portainer_stack_status.py +34 -0
  1018. ptctools/portainer_client/openapi_client/test/test_portainer_stack_type.py +34 -0
  1019. ptctools/portainer_client/openapi_client/test/test_portainer_tag.py +59 -0
  1020. ptctools/portainer_client/openapi_client/test/test_portainer_team.py +53 -0
  1021. ptctools/portainer_client/openapi_client/test/test_portainer_team_membership.py +55 -0
  1022. ptctools/portainer_client/openapi_client/test/test_portainer_team_resource_access.py +53 -0
  1023. ptctools/portainer_client/openapi_client/test/test_portainer_template.py +99 -0
  1024. ptctools/portainer_client/openapi_client/test/test_portainer_template_env.py +62 -0
  1025. ptctools/portainer_client/openapi_client/test/test_portainer_template_env_select.py +54 -0
  1026. ptctools/portainer_client/openapi_client/test/test_portainer_template_repository.py +53 -0
  1027. ptctools/portainer_client/openapi_client/test/test_portainer_template_type.py +34 -0
  1028. ptctools/portainer_client/openapi_client/test/test_portainer_template_volume.py +54 -0
  1029. ptctools/portainer_client/openapi_client/test/test_portainer_tls_configuration.py +56 -0
  1030. ptctools/portainer_client/openapi_client/test/test_portainer_user.py +67 -0
  1031. ptctools/portainer_client/openapi_client/test/test_portainer_user_resource_access.py +53 -0
  1032. ptctools/portainer_client/openapi_client/test/test_portainer_user_role.py +34 -0
  1033. ptctools/portainer_client/openapi_client/test/test_portainer_user_theme_settings.py +52 -0
  1034. ptctools/portainer_client/openapi_client/test/test_portainer_webhook.py +57 -0
  1035. ptctools/portainer_client/openapi_client/test/test_portainer_webhook_type.py +34 -0
  1036. ptctools/portainer_client/openapi_client/test/test_registries_api.py +74 -0
  1037. ptctools/portainer_client/openapi_client/test/test_registries_registry_configure_payload.py +67 -0
  1038. ptctools/portainer_client/openapi_client/test/test_registries_registry_create_payload.py +71 -0
  1039. ptctools/portainer_client/openapi_client/test/test_registries_registry_update_payload.py +79 -0
  1040. ptctools/portainer_client/openapi_client/test/test_release_chart.py +132 -0
  1041. ptctools/portainer_client/openapi_client/test/test_release_chart_reference.py +54 -0
  1042. ptctools/portainer_client/openapi_client/test/test_release_dependency.py +63 -0
  1043. ptctools/portainer_client/openapi_client/test/test_release_file.py +55 -0
  1044. ptctools/portainer_client/openapi_client/test/test_release_lock.py +68 -0
  1045. ptctools/portainer_client/openapi_client/test/test_release_maintainer.py +54 -0
  1046. ptctools/portainer_client/openapi_client/test/test_release_metadata.py +93 -0
  1047. ptctools/portainer_client/openapi_client/test/test_release_release_element.py +58 -0
  1048. ptctools/portainer_client/openapi_client/test/test_release_values.py +53 -0
  1049. ptctools/portainer_client/openapi_client/test/test_resource_controls_api.py +53 -0
  1050. ptctools/portainer_client/openapi_client/test/test_resource_quantity.py +52 -0
  1051. ptctools/portainer_client/openapi_client/test/test_resourcecontrols_resource_control_create_payload.py +60 -0
  1052. ptctools/portainer_client/openapi_client/test/test_resourcecontrols_resource_control_update_payload.py +55 -0
  1053. ptctools/portainer_client/openapi_client/test/test_roles_api.py +39 -0
  1054. ptctools/portainer_client/openapi_client/test/test_settings_api.py +53 -0
  1055. ptctools/portainer_client/openapi_client/test/test_settings_public_settings_response.py +72 -0
  1056. ptctools/portainer_client/openapi_client/test/test_settings_public_settings_response_edge.py +55 -0
  1057. ptctools/portainer_client/openapi_client/test/test_settings_settings_update_payload.py +116 -0
  1058. ptctools/portainer_client/openapi_client/test/test_ssl_api.py +46 -0
  1059. ptctools/portainer_client/openapi_client/test/test_ssl_ssl_update_payload.py +54 -0
  1060. ptctools/portainer_client/openapi_client/test/test_stacks_api.py +186 -0
  1061. ptctools/portainer_client/openapi_client/test/test_stacks_compose_stack_from_file_content_payload.py +67 -0
  1062. ptctools/portainer_client/openapi_client/test/test_stacks_compose_stack_from_git_repository_payload.py +74 -0
  1063. ptctools/portainer_client/openapi_client/test/test_stacks_kubernetes_git_deployment_payload.py +70 -0
  1064. ptctools/portainer_client/openapi_client/test/test_stacks_kubernetes_manifest_url_deployment_payload.py +55 -0
  1065. ptctools/portainer_client/openapi_client/test/test_stacks_kubernetes_string_deployment_payload.py +56 -0
  1066. ptctools/portainer_client/openapi_client/test/test_stacks_stack_file_response.py +55 -0
  1067. ptctools/portainer_client/openapi_client/test/test_stacks_stack_git_redploy_payload.py +64 -0
  1068. ptctools/portainer_client/openapi_client/test/test_stacks_stack_git_update_payload.py +69 -0
  1069. ptctools/portainer_client/openapi_client/test/test_stacks_stack_migrate_payload.py +55 -0
  1070. ptctools/portainer_client/openapi_client/test/test_stacks_swarm_stack_from_file_content_payload.py +69 -0
  1071. ptctools/portainer_client/openapi_client/test/test_stacks_swarm_stack_from_git_repository_payload.py +76 -0
  1072. ptctools/portainer_client/openapi_client/test/test_stacks_update_swarm_stack_payload.py +62 -0
  1073. ptctools/portainer_client/openapi_client/test/test_status_api.py +39 -0
  1074. ptctools/portainer_client/openapi_client/test/test_swarm_service_update_response.py +54 -0
  1075. ptctools/portainer_client/openapi_client/test/test_system_api.py +67 -0
  1076. ptctools/portainer_client/openapi_client/test/test_system_nodes_count_response.py +52 -0
  1077. ptctools/portainer_client/openapi_client/test/test_system_status.py +53 -0
  1078. ptctools/portainer_client/openapi_client/test/test_system_system_info_response.py +54 -0
  1079. ptctools/portainer_client/openapi_client/test/test_system_version_response.py +74 -0
  1080. ptctools/portainer_client/openapi_client/test/test_tags_api.py +53 -0
  1081. ptctools/portainer_client/openapi_client/test/test_tags_tag_create_payload.py +53 -0
  1082. ptctools/portainer_client/openapi_client/test/test_team_memberships_api.py +67 -0
  1083. ptctools/portainer_client/openapi_client/test/test_teammemberships_team_membership_create_payload.py +57 -0
  1084. ptctools/portainer_client/openapi_client/test/test_teammemberships_team_membership_update_payload.py +57 -0
  1085. ptctools/portainer_client/openapi_client/test/test_teams_api.py +67 -0
  1086. ptctools/portainer_client/openapi_client/test/test_teams_team_create_payload.py +54 -0
  1087. ptctools/portainer_client/openapi_client/test/test_teams_team_update_payload.py +52 -0
  1088. ptctools/portainer_client/openapi_client/test/test_templates_api.py +46 -0
  1089. ptctools/portainer_client/openapi_client/test/test_templates_file_response.py +52 -0
  1090. ptctools/portainer_client/openapi_client/test/test_templates_list_response.py +101 -0
  1091. ptctools/portainer_client/openapi_client/test/test_unstructured_unstructured.py +52 -0
  1092. ptctools/portainer_client/openapi_client/test/test_upload_api.py +39 -0
  1093. ptctools/portainer_client/openapi_client/test/test_users_access_token_response.py +60 -0
  1094. ptctools/portainer_client/openapi_client/test/test_users_add_helm_repo_url_payload.py +52 -0
  1095. ptctools/portainer_client/openapi_client/test/test_users_admin_init_payload.py +55 -0
  1096. ptctools/portainer_client/openapi_client/test/test_users_api.py +123 -0
  1097. ptctools/portainer_client/openapi_client/test/test_users_helm_user_repository_response.py +58 -0
  1098. ptctools/portainer_client/openapi_client/test/test_users_theme_payload.py +52 -0
  1099. ptctools/portainer_client/openapi_client/test/test_users_user_access_token_create_payload.py +55 -0
  1100. ptctools/portainer_client/openapi_client/test/test_users_user_create_payload.py +57 -0
  1101. ptctools/portainer_client/openapi_client/test/test_users_user_update_password_payload.py +55 -0
  1102. ptctools/portainer_client/openapi_client/test/test_users_user_update_payload.py +63 -0
  1103. ptctools/portainer_client/openapi_client/test/test_v1_app_armor_profile.py +53 -0
  1104. ptctools/portainer_client/openapi_client/test/test_v1_app_armor_profile_type.py +34 -0
  1105. ptctools/portainer_client/openapi_client/test/test_v1_capabilities.py +57 -0
  1106. ptctools/portainer_client/openapi_client/test/test_v1_client_ip_config.py +52 -0
  1107. ptctools/portainer_client/openapi_client/test/test_v1_condition.py +57 -0
  1108. ptctools/portainer_client/openapi_client/test/test_v1_config_map_env_source.py +53 -0
  1109. ptctools/portainer_client/openapi_client/test/test_v1_config_map_key_selector.py +54 -0
  1110. ptctools/portainer_client/openapi_client/test/test_v1_container.py +165 -0
  1111. ptctools/portainer_client/openapi_client/test/test_v1_container_port.py +56 -0
  1112. ptctools/portainer_client/openapi_client/test/test_v1_container_resize_policy.py +53 -0
  1113. ptctools/portainer_client/openapi_client/test/test_v1_container_restart_policy.py +34 -0
  1114. ptctools/portainer_client/openapi_client/test/test_v1_csi_persistent_volume_source.py +73 -0
  1115. ptctools/portainer_client/openapi_client/test/test_v1_duration.py +52 -0
  1116. ptctools/portainer_client/openapi_client/test/test_v1_env_from_source.py +58 -0
  1117. ptctools/portainer_client/openapi_client/test/test_v1_env_var.py +58 -0
  1118. ptctools/portainer_client/openapi_client/test/test_v1_env_var_source.py +66 -0
  1119. ptctools/portainer_client/openapi_client/test/test_v1_exec_action.py +54 -0
  1120. ptctools/portainer_client/openapi_client/test/test_v1_grpc_action.py +53 -0
  1121. ptctools/portainer_client/openapi_client/test/test_v1_http_get_action.py +63 -0
  1122. ptctools/portainer_client/openapi_client/test/test_v1_http_header.py +53 -0
  1123. ptctools/portainer_client/openapi_client/test/test_v1_ip_family.py +34 -0
  1124. ptctools/portainer_client/openapi_client/test/test_v1_ip_family_policy.py +34 -0
  1125. ptctools/portainer_client/openapi_client/test/test_v1_label_selector.py +62 -0
  1126. ptctools/portainer_client/openapi_client/test/test_v1_label_selector_operator.py +34 -0
  1127. ptctools/portainer_client/openapi_client/test/test_v1_label_selector_requirement.py +56 -0
  1128. ptctools/portainer_client/openapi_client/test/test_v1_lifecycle.py +62 -0
  1129. ptctools/portainer_client/openapi_client/test/test_v1_lifecycle_handler.py +70 -0
  1130. ptctools/portainer_client/openapi_client/test/test_v1_list_meta.py +55 -0
  1131. ptctools/portainer_client/openapi_client/test/test_v1_load_balancer_ingress.py +60 -0
  1132. ptctools/portainer_client/openapi_client/test/test_v1_load_balancer_ip_mode.py +34 -0
  1133. ptctools/portainer_client/openapi_client/test/test_v1_load_balancer_status.py +63 -0
  1134. ptctools/portainer_client/openapi_client/test/test_v1_managed_fields_entry.py +58 -0
  1135. ptctools/portainer_client/openapi_client/test/test_v1_managed_fields_operation_type.py +34 -0
  1136. ptctools/portainer_client/openapi_client/test/test_v1_mount_propagation_mode.py +34 -0
  1137. ptctools/portainer_client/openapi_client/test/test_v1_namespace_condition.py +56 -0
  1138. ptctools/portainer_client/openapi_client/test/test_v1_namespace_condition_type.py +34 -0
  1139. ptctools/portainer_client/openapi_client/test/test_v1_namespace_phase.py +34 -0
  1140. ptctools/portainer_client/openapi_client/test/test_v1_namespace_status.py +60 -0
  1141. ptctools/portainer_client/openapi_client/test/test_v1_object_field_selector.py +53 -0
  1142. ptctools/portainer_client/openapi_client/test/test_v1_object_meta.py +89 -0
  1143. ptctools/portainer_client/openapi_client/test/test_v1_object_reference.py +58 -0
  1144. ptctools/portainer_client/openapi_client/test/test_v1_owner_reference.py +57 -0
  1145. ptctools/portainer_client/openapi_client/test/test_v1_persistent_volume_access_mode.py +34 -0
  1146. ptctools/portainer_client/openapi_client/test/test_v1_persistent_volume_claim_phase.py +34 -0
  1147. ptctools/portainer_client/openapi_client/test/test_v1_persistent_volume_mode.py +34 -0
  1148. ptctools/portainer_client/openapi_client/test/test_v1_persistent_volume_reclaim_policy.py +34 -0
  1149. ptctools/portainer_client/openapi_client/test/test_v1_port_status.py +54 -0
  1150. ptctools/portainer_client/openapi_client/test/test_v1_probe.py +77 -0
  1151. ptctools/portainer_client/openapi_client/test/test_v1_proc_mount_type.py +34 -0
  1152. ptctools/portainer_client/openapi_client/test/test_v1_protocol.py +34 -0
  1153. ptctools/portainer_client/openapi_client/test/test_v1_pull_policy.py +34 -0
  1154. ptctools/portainer_client/openapi_client/test/test_v1_recursive_read_only_mode.py +34 -0
  1155. ptctools/portainer_client/openapi_client/test/test_v1_resource_claim.py +53 -0
  1156. ptctools/portainer_client/openapi_client/test/test_v1_resource_field_selector.py +55 -0
  1157. ptctools/portainer_client/openapi_client/test/test_v1_resource_name.py +34 -0
  1158. ptctools/portainer_client/openapi_client/test/test_v1_resource_quota.py +101 -0
  1159. ptctools/portainer_client/openapi_client/test/test_v1_resource_quota_scope.py +34 -0
  1160. ptctools/portainer_client/openapi_client/test/test_v1_resource_quota_spec.py +67 -0
  1161. ptctools/portainer_client/openapi_client/test/test_v1_resource_quota_status.py +59 -0
  1162. ptctools/portainer_client/openapi_client/test/test_v1_resource_requirements.py +64 -0
  1163. ptctools/portainer_client/openapi_client/test/test_v1_resource_resize_restart_policy.py +34 -0
  1164. ptctools/portainer_client/openapi_client/test/test_v1_role_ref.py +54 -0
  1165. ptctools/portainer_client/openapi_client/test/test_v1_scope_selector.py +59 -0
  1166. ptctools/portainer_client/openapi_client/test/test_v1_scope_selector_operator.py +34 -0
  1167. ptctools/portainer_client/openapi_client/test/test_v1_scoped_resource_selector_requirement.py +56 -0
  1168. ptctools/portainer_client/openapi_client/test/test_v1_se_linux_options.py +55 -0
  1169. ptctools/portainer_client/openapi_client/test/test_v1_seccomp_profile.py +53 -0
  1170. ptctools/portainer_client/openapi_client/test/test_v1_seccomp_profile_type.py +34 -0
  1171. ptctools/portainer_client/openapi_client/test/test_v1_secret_env_source.py +53 -0
  1172. ptctools/portainer_client/openapi_client/test/test_v1_secret_key_selector.py +54 -0
  1173. ptctools/portainer_client/openapi_client/test/test_v1_secret_reference.py +53 -0
  1174. ptctools/portainer_client/openapi_client/test/test_v1_security_context.py +81 -0
  1175. ptctools/portainer_client/openapi_client/test/test_v1_service.py +142 -0
  1176. ptctools/portainer_client/openapi_client/test/test_v1_service_affinity.py +34 -0
  1177. ptctools/portainer_client/openapi_client/test/test_v1_service_external_traffic_policy.py +34 -0
  1178. ptctools/portainer_client/openapi_client/test/test_v1_service_internal_traffic_policy.py +34 -0
  1179. ptctools/portainer_client/openapi_client/test/test_v1_service_port.py +60 -0
  1180. ptctools/portainer_client/openapi_client/test/test_v1_service_spec.py +90 -0
  1181. ptctools/portainer_client/openapi_client/test/test_v1_service_status.py +73 -0
  1182. ptctools/portainer_client/openapi_client/test/test_v1_service_type.py +34 -0
  1183. ptctools/portainer_client/openapi_client/test/test_v1_session_affinity_config.py +53 -0
  1184. ptctools/portainer_client/openapi_client/test/test_v1_signal.py +34 -0
  1185. ptctools/portainer_client/openapi_client/test/test_v1_sleep_action.py +52 -0
  1186. ptctools/portainer_client/openapi_client/test/test_v1_tcp_socket_action.py +56 -0
  1187. ptctools/portainer_client/openapi_client/test/test_v1_termination_message_policy.py +34 -0
  1188. ptctools/portainer_client/openapi_client/test/test_v1_uri_scheme.py +34 -0
  1189. ptctools/portainer_client/openapi_client/test/test_v1_volume_device.py +53 -0
  1190. ptctools/portainer_client/openapi_client/test/test_v1_volume_mount.py +58 -0
  1191. ptctools/portainer_client/openapi_client/test/test_v1_windows_security_context_options.py +55 -0
  1192. ptctools/portainer_client/openapi_client/test/test_v1beta1_container_metrics.py +56 -0
  1193. ptctools/portainer_client/openapi_client/test/test_v1beta1_node_metrics.py +99 -0
  1194. ptctools/portainer_client/openapi_client/test/test_v1beta1_node_metrics_list.py +68 -0
  1195. ptctools/portainer_client/openapi_client/test/test_v1beta1_pod_metrics.py +100 -0
  1196. ptctools/portainer_client/openapi_client/test/test_v1beta1_pod_metrics_list.py +72 -0
  1197. ptctools/portainer_client/openapi_client/test/test_v2_container_resource_metric_source.py +58 -0
  1198. ptctools/portainer_client/openapi_client/test/test_v2_container_resource_metric_status.py +57 -0
  1199. ptctools/portainer_client/openapi_client/test/test_v2_cross_version_object_reference.py +54 -0
  1200. ptctools/portainer_client/openapi_client/test/test_v2_external_metric_source.py +59 -0
  1201. ptctools/portainer_client/openapi_client/test/test_v2_external_metric_status.py +58 -0
  1202. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler.py +128 -0
  1203. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler_behavior.py +71 -0
  1204. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler_condition.py +56 -0
  1205. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler_condition_type.py +34 -0
  1206. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler_spec.py +69 -0
  1207. ptctools/portainer_client/openapi_client/test/test_v2_horizontal_pod_autoscaler_status.py +72 -0
  1208. ptctools/portainer_client/openapi_client/test/test_v2_hpa_scaling_policy.py +54 -0
  1209. ptctools/portainer_client/openapi_client/test/test_v2_hpa_scaling_policy_type.py +34 -0
  1210. ptctools/portainer_client/openapi_client/test/test_v2_hpa_scaling_rules.py +61 -0
  1211. ptctools/portainer_client/openapi_client/test/test_v2_metric_identifier.py +64 -0
  1212. ptctools/portainer_client/openapi_client/test/test_v2_metric_source_type.py +34 -0
  1213. ptctools/portainer_client/openapi_client/test/test_v2_metric_spec.py +69 -0
  1214. ptctools/portainer_client/openapi_client/test/test_v2_metric_status.py +69 -0
  1215. ptctools/portainer_client/openapi_client/test/test_v2_metric_target.py +57 -0
  1216. ptctools/portainer_client/openapi_client/test/test_v2_metric_target_type.py +34 -0
  1217. ptctools/portainer_client/openapi_client/test/test_v2_metric_value_status.py +56 -0
  1218. ptctools/portainer_client/openapi_client/test/test_v2_object_metric_source.py +63 -0
  1219. ptctools/portainer_client/openapi_client/test/test_v2_object_metric_status.py +62 -0
  1220. ptctools/portainer_client/openapi_client/test/test_v2_pods_metric_source.py +59 -0
  1221. ptctools/portainer_client/openapi_client/test/test_v2_pods_metric_status.py +58 -0
  1222. ptctools/portainer_client/openapi_client/test/test_v2_resource_metric_source.py +57 -0
  1223. ptctools/portainer_client/openapi_client/test/test_v2_resource_metric_status.py +56 -0
  1224. ptctools/portainer_client/openapi_client/test/test_v2_scaling_policy_select.py +34 -0
  1225. ptctools/portainer_client/openapi_client/test/test_webhooks_api.py +67 -0
  1226. ptctools/portainer_client/openapi_client/test/test_webhooks_webhook_create_payload.py +55 -0
  1227. ptctools/portainer_client/openapi_client/test/test_webhooks_webhook_update_payload.py +52 -0
  1228. ptctools/portainer_client/openapi_client/test/test_websocket_api.py +60 -0
  1229. ptctools/portainer_client/openapi_client_README.md +707 -0
  1230. ptctools/stack.py +177 -259
  1231. ptctools/utils.py +8 -0
  1232. ptctools/volume.py +581 -66
  1233. {ptctools-0.1.0.dist-info → ptctools-0.1.1.dist-info}/METADATA +33 -1
  1234. ptctools-0.1.1.dist-info/RECORD +1239 -0
  1235. ptctools-0.1.0.dist-info/RECORD +0 -14
  1236. {ptctools-0.1.0.dist-info → ptctools-0.1.1.dist-info}/WHEEL +0 -0
  1237. {ptctools-0.1.0.dist-info → ptctools-0.1.1.dist-info}/entry_points.txt +0 -0
  1238. {ptctools-0.1.0.dist-info → ptctools-0.1.1.dist-info}/licenses/LICENSE +0 -0
ptctools/_portainer.py CHANGED
@@ -5,275 +5,499 @@ Common utility functions for Portainer API scripts.
5
5
  from __future__ import annotations
6
6
 
7
7
  import json
8
- from urllib.request import Request, urlopen
9
- from urllib.error import HTTPError, URLError
8
+ import docker
9
+ import docker.api.client
10
+ from requests.adapters import HTTPAdapter as RequestsHTTPAdapter
10
11
 
12
+ from ptctools.portainer_client.openapi_client import ApiClient
13
+ from ptctools.portainer_client.openapi_client.configuration import Configuration
14
+ from ptctools.portainer_client.openapi_client.api.resource_controls_api import (
15
+ ResourceControlsApi,
16
+ )
17
+ from ptctools.portainer_client.openapi_client.api.users_api import UsersApi
18
+ from ptctools.portainer_client.openapi_client.models.resourcecontrols_resource_control_create_payload import (
19
+ ResourcecontrolsResourceControlCreatePayload,
20
+ )
21
+ from ptctools.portainer_client.openapi_client.models.resourcecontrols_resource_control_update_payload import (
22
+ ResourcecontrolsResourceControlUpdatePayload,
23
+ )
24
+ from ptctools.portainer_client.openapi_client.models.portainer_resource_control_type import (
25
+ PortainerResourceControlType,
26
+ )
27
+ from ptctools.portainer_client.openapi_client.exceptions import ApiException
11
28
 
12
- def api_request(
13
- url: str,
14
- api_key: str,
15
- method: str = "GET",
16
- data: dict | None = None,
17
- ) -> tuple[dict | list | None, int]:
18
- """Make an API request to Portainer."""
19
- headers = {
20
- "X-API-Key": api_key,
21
- "Content-Type": "application/json",
22
- }
23
-
24
- body = json.dumps(data).encode("utf-8") if data else None
25
- req = Request(url, data=body, headers=headers, method=method)
26
29
 
27
- try:
28
- with urlopen(req) as response:
29
- response_body = response.read().decode("utf-8")
30
- return json.loads(response_body) if response_body else None, response.status
31
- except HTTPError as e:
32
- response_body = e.read().decode("utf-8")
33
- try:
34
- return json.loads(response_body), e.code
35
- except json.JSONDecodeError:
36
- return {"error": response_body}, e.code
37
- except URLError as e:
38
- return {"error": str(e.reason)}, 0
30
+ class PortainerError(Exception):
31
+ """Base exception for Portainer-related errors."""
39
32
 
33
+ pass
40
34
 
41
- def create_container(
42
- portainer_url: str,
43
- api_key: str,
44
- endpoint_id: int,
45
- config: dict,
46
- ) -> str | None:
47
- """Create a container and return its ID."""
48
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/create"
49
- response, status_code = api_request(url, api_key, method="POST", data=config)
50
35
 
51
- if 200 <= status_code < 300 and response:
52
- return response.get("Id")
53
- else:
54
- print(f"Error creating container (HTTP {status_code}):")
55
- print(json.dumps(response, indent=2))
56
- return None
36
+ class ResourceControlError(PortainerError):
37
+ """Exception for resource control operations."""
57
38
 
39
+ pass
58
40
 
59
- def pull_image(
60
- portainer_url: str,
61
- api_key: str,
62
- endpoint_id: int,
63
- image: str,
64
- ) -> bool:
65
- """Pull a Docker image."""
66
- from urllib.request import Request, urlopen
67
- from urllib.parse import quote
68
-
69
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/images/create?fromImage={quote(image)}"
70
- headers = {"X-API-Key": api_key}
71
- req = Request(url, data=b"", headers=headers, method="POST")
72
41
 
73
- try:
74
- with urlopen(req) as response:
75
- # Read streaming response (Docker sends progress updates)
76
- response.read()
77
- return response.status == 200
78
- except Exception:
79
- return False
42
+ class VolumeOwnershipError(PortainerError):
43
+ """Exception for volume ownership operations."""
80
44
 
45
+ pass
81
46
 
82
- def start_container(
83
- portainer_url: str,
84
- api_key: str,
85
- endpoint_id: int,
86
- container_id: str,
87
- ) -> bool:
88
- """Start a container."""
89
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/{container_id}/start"
90
- _, status_code = api_request(url, api_key, method="POST")
91
- return 200 <= status_code < 300
92
47
 
48
+ class PortainerHTTPAdapter(RequestsHTTPAdapter):
49
+ """Custom HTTP adapter that routes requests through Portainer's Docker proxy."""
93
50
 
94
- def wait_container(
95
- portainer_url: str,
96
- api_key: str,
97
- endpoint_id: int,
98
- container_id: str,
99
- ) -> int:
100
- """Wait for a container to finish and return exit code."""
101
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/{container_id}/wait"
102
- response, status_code = api_request(url, api_key, method="POST")
51
+ def __init__(self, portainer_url: str, endpoint_id: int, api_key: str, **kwargs):
52
+ self.portainer_url = portainer_url.rstrip("/")
53
+ self.endpoint_id = endpoint_id
54
+ self.api_key = api_key
55
+ super().__init__(**kwargs)
103
56
 
104
- if 200 <= status_code < 300 and response:
105
- return response.get("StatusCode", -1)
106
- return -1
57
+ def send(self, request, *args, **kwargs):
58
+ # Rewrite URL: http://localhost:2375/v1.xx/containers/... -> {portainer_url}/api/endpoints/{id}/docker/containers/...
59
+ original_url = request.url
107
60
 
61
+ # docker-py sends to http://localhost:2375/v1.45/containers/...
62
+ if original_url.startswith("http://localhost"):
63
+ # Extract path after localhost (strip host and port)
64
+ # e.g., "http://localhost:2375/v1.45/containers/abc" -> "/v1.45/containers/abc"
65
+ from urllib.parse import urlparse
108
66
 
109
- def get_container_logs(
110
- portainer_url: str,
111
- api_key: str,
112
- endpoint_id: int,
113
- container_id: str,
114
- ) -> str:
115
- """Get container logs."""
116
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/{container_id}/logs?stdout=true&stderr=true"
67
+ parsed = urlparse(original_url)
68
+ path = parsed.path
69
+ if parsed.query:
70
+ path = f"{path}?{parsed.query}"
117
71
 
118
- headers = {"X-API-Key": api_key}
119
- req = Request(url, headers=headers, method="GET")
72
+ # Remove version prefix like /v1.45
73
+ if path.startswith("/v"):
74
+ parts = path.split("/", 2)
75
+ if len(parts) >= 3:
76
+ path = "/" + parts[2]
120
77
 
121
- try:
122
- with urlopen(req) as response:
123
- # Docker logs have stream headers, strip them
124
- raw_logs = response.read()
125
- # Simple cleanup - remove Docker stream headers (8 bytes each)
126
- logs = ""
127
- i = 0
128
- while i < len(raw_logs):
129
- if i + 8 <= len(raw_logs):
130
- size = int.from_bytes(raw_logs[i + 4 : i + 8], "big")
131
- if i + 8 + size <= len(raw_logs):
132
- logs += raw_logs[i + 8 : i + 8 + size].decode(
133
- "utf-8", errors="replace"
134
- )
135
- i += 8 + size
136
- continue
137
- break
138
- return logs
139
- except Exception as e:
140
- return f"Error getting logs: {e}"
78
+ request.url = f"{self.portainer_url.rstrip('/')}/api/endpoints/{self.endpoint_id}/docker{path}"
141
79
 
80
+ # Inject API key header
81
+ request.headers["X-API-Key"] = self.api_key
142
82
 
143
- def remove_container(
144
- portainer_url: str,
145
- api_key: str,
146
- endpoint_id: int,
147
- container_id: str,
148
- ) -> bool:
149
- """Remove a container."""
150
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/{container_id}?force=true"
151
- _, status_code = api_request(url, api_key, method="DELETE")
152
- return 200 <= status_code < 300
83
+ return super().send(request, *args, **kwargs)
153
84
 
154
85
 
155
- def find_container_by_name(
86
+ def get_portainer_docker_client(
156
87
  portainer_url: str,
157
88
  api_key: str,
158
89
  endpoint_id: int,
159
- name_filter: str,
160
- ) -> str | None:
161
- """Find a running container by name filter and return its ID."""
162
- url = f'{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/json?filters={{"name":["{name_filter}"]}}'
163
- response, status_code = api_request(url, api_key)
90
+ ) -> docker.DockerClient:
91
+ """Create a docker-py client that works through Portainer's Docker proxy.
92
+
93
+ Args:
94
+ portainer_url: Portainer base URL (e.g., "https://portainer.example.com")
95
+ api_key: Portainer API key
96
+ endpoint_id: Portainer endpoint/environment ID
97
+
98
+ Returns:
99
+ A DockerClient configured to route through Portainer
100
+ """
101
+ # Create APIClient with explicit version to skip auto-detection
102
+ api_client = docker.api.client.APIClient(
103
+ base_url="http://localhost:2375",
104
+ version="1.45", # Fixed version, skip auto-detection
105
+ )
164
106
 
165
- if 200 <= status_code < 300 and isinstance(response, list) and len(response) > 0:
166
- return response[0].get("Id")
167
- return None
107
+ # APIClient inherits from requests.Session, so mount adapter directly on it
108
+ adapter = PortainerHTTPAdapter(portainer_url, endpoint_id, api_key)
109
+ api_client.mount("http://", adapter)
110
+ api_client.mount("https://", adapter)
168
111
 
112
+ # Wrap in high-level client
113
+ client = docker.DockerClient()
114
+ client.api = api_client
169
115
 
170
- def get_network_id(
171
- portainer_url: str,
172
- api_key: str,
173
- endpoint_id: int,
174
- network_name: str,
175
- ) -> str | None:
176
- """Find a network by name and return its ID."""
177
- url = f'{portainer_url}/api/endpoints/{endpoint_id}/docker/networks?filters={{"name":["{network_name}"]}}'
178
- response, status_code = api_request(url, api_key)
116
+ return client
179
117
 
180
- if 200 <= status_code < 300 and isinstance(response, list) and len(response) > 0:
181
- return response[0].get("Id")
182
- return None
118
+
119
+ def get_portainer_api_client(portainer_url: str, api_key: str) -> ApiClient:
120
+ """Create a configured ApiClient for Portainer API."""
121
+ config = Configuration(
122
+ host=f"{portainer_url.rstrip('/')}/api", api_key={"ApiKeyAuth": api_key}
123
+ )
124
+ return ApiClient(configuration=config)
183
125
 
184
126
 
185
- def create_exec(
127
+ def set_volume_ownership(
186
128
  portainer_url: str,
187
129
  api_key: str,
188
- endpoint_id: int,
189
- container_id: str,
190
- cmd: list[str],
191
- ) -> str | None:
192
- """Create an exec instance in a container and return the exec ID."""
193
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/containers/{container_id}/exec"
194
- config = {
195
- "AttachStdout": True,
196
- "AttachStderr": True,
197
- "Cmd": cmd,
198
- }
199
- response, status_code = api_request(url, api_key, method="POST", data=config)
200
-
201
- if 200 <= status_code < 300 and response:
202
- return response.get("Id")
203
- return None
204
-
205
-
206
- def start_exec(
130
+ volume_name: str,
131
+ ownership: str,
132
+ team_id: int | None = None,
133
+ endpoint_id: int = 1,
134
+ ) -> str:
135
+ """Set ownership on a volume.
136
+
137
+ Args:
138
+ ownership: 'private', 'team', or 'public'
139
+ team_id: Required if ownership is 'team'
140
+ endpoint_id: Portainer endpoint ID (default 1)
141
+
142
+ Returns:
143
+ A message describing what was done (e.g., "set to private", "updated to team 5")
144
+
145
+ Raises:
146
+ VolumeOwnershipError: If ownership cannot be set
147
+ """
148
+ # 1. Inspect volume to get existing RC via Docker Proxy
149
+ # This relies on Portainer injecting metadata into the Docker volume inspect response
150
+ docker_client = get_portainer_docker_client(portainer_url, api_key, endpoint_id)
151
+ try:
152
+ volume = docker_client.volumes.get(volume_name)
153
+ except docker.errors.NotFound:
154
+ # If volume not found, we can't set ownership
155
+ raise VolumeOwnershipError(f"Volume {volume_name} not found")
156
+ except docker.errors.APIError as e:
157
+ raise VolumeOwnershipError(f"Failed to inspect volume: {e}") from e
158
+
159
+ # Extract ResourceControl ID if it exists
160
+ # Structure: volume.attrs['Portainer']['ResourceControl']['Id']
161
+ rc_id = None
162
+ portainer_meta = volume.attrs.get("Portainer")
163
+ if portainer_meta:
164
+ rc = portainer_meta.get("ResourceControl")
165
+ if rc:
166
+ rc_id = rc.get("Id")
167
+
168
+ # 2. Use Portainer Client for RC operations
169
+ with get_portainer_api_client(portainer_url, api_key) as client:
170
+ rc_api = ResourceControlsApi(client)
171
+ users_api = UsersApi(client)
172
+
173
+ if ownership == "private":
174
+ # Get current user ID
175
+ try:
176
+ user = users_api.current_user_inspect()
177
+ user_id = user.id
178
+ except ApiException as e:
179
+ raise VolumeOwnershipError("Failed to get current user") from e
180
+
181
+ # Payload logic
182
+ if rc_id:
183
+ payload = ResourcecontrolsResourceControlUpdatePayload(
184
+ public=False,
185
+ teams=[],
186
+ users=[user_id],
187
+ )
188
+ try:
189
+ rc_api.resource_control_update(id=rc_id, body=payload.to_dict())
190
+ except ApiException as e:
191
+ error_msg = str(e.body) if e.body else str(e.reason)
192
+ raise VolumeOwnershipError(
193
+ f"Failed to update resource control: {error_msg}"
194
+ ) from e
195
+ return "updated to private"
196
+ else:
197
+ payload = ResourcecontrolsResourceControlCreatePayload(
198
+ resource_id=volume_name,
199
+ # IMPORTANT: Resource ID for volumes must include the suffix if present?
200
+ # The volume.attrs['ResourceID'] field usually contains the full ID.
201
+ # Or 'Name' + suffix.
202
+ # docker-py volume.id usually is the name for local driver, but Portainer might expect
203
+ # the ID with suffix if it lists it that way.
204
+ # Actually, for CREATION, we use the volume NAME usually if it's external?
205
+ # But the API sample showed "ResourceID": "llmproxy-data_db-data_t4sho5o9f8rqtdf236jvt44us"
206
+ # If we create a NEW control, we need to match the resource ID expected by Portainer.
207
+ # If Portainer hasn't assigned a suffix yet (new volume), validation might rely on name.
208
+ # But if we use volume.attrs['ResourceID'], that should be safer.
209
+ # If 'ResourceID' field is missing, fallback to volume_name.
210
+ # Checking the user's JSON: "ResourceID": "..." is at top level.
211
+ # Docker standard inspect has "Name". "ResourceID" is likely added by Portainer proxy?
212
+ # Let's check docker-py Volume object attrs.
213
+ # Defaulting to volume_name is safest for 'create' if unsure, as that's what we did before.
214
+ # But if Portainer uses a unique ID, we should use it.
215
+ # I will try to use volume.attrs.get("ResourceID") or volume_name.
216
+ type=PortainerResourceControlType.VolumeResourceControl,
217
+ public=False,
218
+ teams=[],
219
+ users=[user_id],
220
+ )
221
+ # Correction: ResourceID in payload.
222
+ resource_identifier = volume.attrs.get("ResourceID", volume_name)
223
+ payload.resource_id = resource_identifier
224
+
225
+ try:
226
+ rc_api.resource_control_create(body=payload.to_dict())
227
+ except ApiException as e:
228
+ error_msg = str(e.body) if e.body else str(e.reason)
229
+ raise VolumeOwnershipError(
230
+ f"Failed to create resource control: {error_msg}"
231
+ ) from e
232
+ return "set to private"
233
+
234
+ elif ownership == "team":
235
+ if not team_id:
236
+ # Auto-detect team
237
+ try:
238
+ user = users_api.current_user_inspect()
239
+ memberships = users_api.user_memberships_inspect(user.id)
240
+ team_ids = [m.team_id for m in memberships if m.team_id]
241
+ if not team_ids:
242
+ raise VolumeOwnershipError(
243
+ "No team found and --team-id not specified"
244
+ )
245
+ team_id = team_ids[0]
246
+ except ApiException as e:
247
+ raise VolumeOwnershipError(
248
+ "No team found and --team-id not specified"
249
+ ) from e
250
+
251
+ if rc_id:
252
+ payload = ResourcecontrolsResourceControlUpdatePayload(
253
+ public=False,
254
+ teams=[team_id],
255
+ users=[],
256
+ )
257
+ try:
258
+ rc_api.resource_control_update(id=rc_id, body=payload.to_dict())
259
+ except ApiException as e:
260
+ error_msg = str(e.body) if e.body else str(e.reason)
261
+ raise VolumeOwnershipError(
262
+ f"Failed to update resource control: {error_msg}"
263
+ ) from e
264
+ return f"updated to team {team_id}"
265
+ else:
266
+ resource_identifier = volume.attrs.get("ResourceID", volume_name)
267
+ payload = ResourcecontrolsResourceControlCreatePayload(
268
+ resource_id=resource_identifier,
269
+ type=PortainerResourceControlType.VolumeResourceControl,
270
+ public=False,
271
+ teams=[team_id],
272
+ users=[],
273
+ )
274
+ try:
275
+ rc_api.resource_control_create(body=payload.to_dict())
276
+ except ApiException as e:
277
+ error_msg = str(e.body) if e.body else str(e.reason)
278
+ raise VolumeOwnershipError(
279
+ f"Failed to create resource control: {error_msg}"
280
+ ) from e
281
+ return f"set to team {team_id}"
282
+
283
+ elif ownership == "public":
284
+ if rc_id:
285
+ payload = ResourcecontrolsResourceControlUpdatePayload(
286
+ public=True,
287
+ teams=[],
288
+ users=[],
289
+ )
290
+ try:
291
+ rc_api.resource_control_update(id=rc_id, body=payload.to_dict())
292
+ except ApiException as e:
293
+ error_msg = str(e.body) if e.body else str(e.reason)
294
+ raise VolumeOwnershipError(
295
+ f"Failed to update resource control: {error_msg}"
296
+ ) from e
297
+ return "updated to public"
298
+ else:
299
+ resource_identifier = volume.attrs.get("ResourceID", volume_name)
300
+ payload = ResourcecontrolsResourceControlCreatePayload(
301
+ resource_id=resource_identifier,
302
+ type=PortainerResourceControlType.VolumeResourceControl,
303
+ public=True,
304
+ teams=[],
305
+ users=[],
306
+ )
307
+ try:
308
+ rc_api.resource_control_create(body=payload.to_dict())
309
+ except ApiException as e:
310
+ error_msg = str(e.body) if e.body else str(e.reason)
311
+ raise VolumeOwnershipError(
312
+ f"Failed to create resource control: {error_msg}"
313
+ ) from e
314
+ return "set to public"
315
+
316
+ else:
317
+ raise VolumeOwnershipError(f"Unknown ownership type: {ownership}")
318
+
319
+
320
+ def copy_volume_resource_control(
207
321
  portainer_url: str,
208
322
  api_key: str,
209
- endpoint_id: int,
210
- exec_id: str,
211
- ) -> tuple[int, str]:
212
- """Start an exec instance and return (exit_code, output)."""
213
- from urllib.request import Request, urlopen
323
+ source_volume: str,
324
+ dest_volume: str,
325
+ endpoint_id: int = 1,
326
+ ) -> str:
327
+ """Copy ResourceControl from source volume to destination volume.
214
328
 
215
- url = f"{portainer_url}/api/endpoints/{endpoint_id}/docker/exec/{exec_id}/start"
216
- headers = {
217
- "X-API-Key": api_key,
218
- "Content-Type": "application/json",
219
- }
220
- body = json.dumps({"Detach": False, "Tty": False}).encode("utf-8")
221
- req = Request(url, data=body, headers=headers, method="POST")
329
+ Returns:
330
+ Action taken: 'copied' or 'skipped'
331
+ """
332
+ docker_client = get_portainer_docker_client(portainer_url, api_key, endpoint_id)
222
333
 
334
+ # Check Source RC
223
335
  try:
224
- with urlopen(req) as response:
225
- # Read raw output (has Docker stream headers like logs)
226
- raw_output = response.read()
227
- # Strip Docker stream headers
228
- output = ""
229
- i = 0
230
- while i < len(raw_output):
231
- if i + 8 <= len(raw_output):
232
- size = int.from_bytes(raw_output[i + 4 : i + 8], "big")
233
- if i + 8 + size <= len(raw_output):
234
- output += raw_output[i + 8 : i + 8 + size].decode(
235
- "utf-8", errors="replace"
236
- )
237
- i += 8 + size
238
- continue
239
- break
240
- except Exception as e:
241
- return -1, f"Error: {e}"
242
-
243
- # Get exec exit code
244
- inspect_url = (
245
- f"{portainer_url}/api/endpoints/{endpoint_id}/docker/exec/{exec_id}/json"
246
- )
247
- inspect_resp, _ = api_request(inspect_url, api_key)
248
- exit_code = inspect_resp.get("ExitCode", -1) if inspect_resp else -1
336
+ source_vol = docker_client.volumes.get(source_volume)
337
+ except docker.errors.NotFound:
338
+ return "skipped"
249
339
 
250
- return exit_code, output
340
+ source_meta = source_vol.attrs.get("Portainer", {})
341
+ source_rc = source_meta.get("ResourceControl")
251
342
 
343
+ if not source_rc:
344
+ return "skipped"
252
345
 
253
- def run_ephemeral_container(
254
- portainer_url: str,
255
- api_key: str,
256
- endpoint_id: int,
257
- config: dict,
258
- pull: bool = True,
259
- ) -> tuple[int, str]:
260
- """Run an ephemeral container and return (exit_code, logs)."""
261
- image = config.get("Image")
262
- if pull and image:
263
- if not pull_image(portainer_url, api_key, endpoint_id, image):
264
- print(f"Warning: Failed to pull image {image}, trying to run anyway...")
346
+ # Check Dest RC
347
+ try:
348
+ dest_vol = docker_client.volumes.get(dest_volume)
349
+ except docker.errors.NotFound:
350
+ return "skipped"
351
+
352
+ dest_meta = dest_vol.attrs.get("Portainer", {})
353
+ dest_rc = dest_meta.get("ResourceControl")
354
+
355
+ if dest_rc:
356
+ return "skipped"
357
+
358
+ # Extract settings from source
359
+ public = source_rc.get("Public", False)
360
+ team_ids = [
361
+ ta.get("TeamId") for ta in source_rc.get("TeamAccesses", []) if ta.get("TeamId")
362
+ ]
363
+ user_ids = [
364
+ ua.get("UserId") for ua in source_rc.get("UserAccesses", []) if ua.get("UserId")
365
+ ]
366
+
367
+ # Create resource control on dest
368
+ resource_identifier = dest_vol.attrs.get("ResourceID", dest_volume)
369
+
370
+ with get_portainer_api_client(portainer_url, api_key) as client:
371
+ rc_api = ResourceControlsApi(client)
372
+ payload = ResourcecontrolsResourceControlCreatePayload(
373
+ resource_id=resource_identifier,
374
+ type=PortainerResourceControlType.VolumeResourceControl,
375
+ public=public,
376
+ teams=team_ids or [],
377
+ users=user_ids or [],
378
+ )
379
+ try:
380
+ rc_api.resource_control_create(body=payload.to_dict())
381
+ except ApiException as e:
382
+ error_msg = str(e.body) if e.body else str(e.reason)
383
+ raise ResourceControlError(
384
+ f"Failed to copy resource control: {error_msg}"
385
+ ) from e
265
386
 
266
- container_id = create_container(portainer_url, api_key, endpoint_id, config)
267
- if not container_id:
268
- return -1, "Failed to create container"
387
+ return "copied"
269
388
 
270
- try:
271
- if not start_container(portainer_url, api_key, endpoint_id, container_id):
272
- return -1, "Failed to start container"
273
389
 
274
- exit_code = wait_container(portainer_url, api_key, endpoint_id, container_id)
275
- logs = get_container_logs(portainer_url, api_key, endpoint_id, container_id)
390
+ def run_container(
391
+ client: docker.DockerClient, image: str, binds: list[str] | None = None, **kwargs
392
+ ) -> tuple[int, str]:
393
+ """Run a container, wait for it to finish, and clean up.
394
+
395
+ 1. Pulls image
396
+ 2. Creates and runs container
397
+ 3. Removes container
398
+ 4. Removes image if unused
399
+
400
+ Args:
401
+ client: Docker client
402
+ image: Image name (e.g. "busybox:latest")
403
+ binds: List of volume binds (e.g. ["vol:/data"])
404
+ **kwargs: Additional arguments for client.api.create_container
405
+
406
+ Returns:
407
+ tuple(exit_code, logs)
408
+ """
409
+ # 1. Check if image exists
410
+ image_existed = False
411
+ try:
412
+ client.images.get(image)
413
+ image_existed = True
414
+ except docker.errors.ImageNotFound:
415
+ image_existed = False
416
+ except docker.errors.APIError:
417
+ # If we can't check, assume it existed to be safe (don't delete user data)
418
+ # And try to pull just in case the error was transient?
419
+ # Actually safer to assume it exists so we don't auto-remove,
420
+ # but we should still try to pull if we're not sure strictly...
421
+ # But instructions say "if image exist so no need pull".
422
+ # If API error, we don't know. Let's assume we need to pull to be safe (ensure it's there),
423
+ # but NOT auto-remove (safe).
424
+ image_existed = True
425
+ # But we will fall through to pull logic if we don't set a flag "need_pull"
426
+ pass
427
+
428
+ # Pull image only if it didn't exist
429
+ if not image_existed:
430
+ try:
431
+ # Split image into name and tag if possible, or just pass full string
432
+ if ":" in image:
433
+ repo, tag = image.split(":", 1)
434
+ client.images.pull(repo, tag=tag)
435
+ else:
436
+ client.images.pull(image)
437
+ except docker.errors.APIError:
438
+ # Continue even if pull fails (maybe we are offline?)
439
+ pass
440
+
441
+ # Prepare host config
442
+ # If host_config is already in kwargs, use it (but we might need to merge binds)
443
+ # The existing usages pass host_config=client.api.create_host_config(...)
444
+ # If the user passes 'binds' argument, we should create host_config or update it.
445
+
446
+ # However, to be flexible:
447
+ # If 'host_config' is passed in kwargs, use it.
448
+ # If 'binds' is passed, we construct host_config.
449
+
450
+ host_config = kwargs.pop("host_config", None)
451
+ if binds and not host_config:
452
+ host_config = client.api.create_host_config(
453
+ binds=binds,
454
+ auto_remove=False,
455
+ )
456
+ elif binds and host_config:
457
+ # This is tricky if host_config is a dict or object.
458
+ # docker-py create_host_config returns a dictionary.
459
+ # We'll just assume the caller handles it if they pass both.
460
+ # But for simpler usage, let's just support passing binds.
461
+ pass
462
+
463
+ # 2. Create container
464
+ # We use client.api.create_container (low-level) as per existing usages
465
+ # image and other args in kwargs
466
+
467
+ # Ensure image is in kwargs or passed
468
+ create_kwargs = kwargs.copy()
469
+ create_kwargs["image"] = image
470
+ if host_config:
471
+ create_kwargs["host_config"] = host_config
472
+
473
+ container_id = None
474
+ try:
475
+ container_resp = client.api.create_container(**create_kwargs)
476
+ container_id = container_resp.get("Id")
477
+
478
+ # 3. Start and wait
479
+ container = client.containers.get(container_id)
480
+ container.start()
481
+ result = container.wait()
482
+ exit_code = result.get("StatusCode", -1)
483
+ logs = container.logs(stdout=True, stderr=True)
484
+ if isinstance(logs, bytes):
485
+ logs = logs.decode("utf-8", errors="replace")
276
486
 
277
- return exit_code, logs
278
487
  finally:
279
- remove_container(portainer_url, api_key, endpoint_id, container_id)
488
+ # 4. Remove container
489
+ if container_id:
490
+ try:
491
+ client.api.remove_container(container_id, force=True)
492
+ except docker.errors.APIError:
493
+ pass
494
+
495
+ # 5. Remove image if it didn't exist before
496
+ if not image_existed:
497
+ try:
498
+ client.images.remove(image=image)
499
+ except docker.errors.APIError:
500
+ # Likely in use by other containers or is a base image
501
+ pass
502
+
503
+ return exit_code, logs