From 1b91ff12186709dd58830c5853fafde31270a0e3 Mon Sep 17 00:00:00 2001 From: 00Kai0 Date: Tue, 29 Dec 2020 11:38:02 +0800 Subject: [PATCH 1/2] GA rdbms track2 sdk --- sdk/rdbms/azure-mgmt-rdbms/CHANGELOG.md | 4 + .../azure-mgmt-rdbms-1.9.0.zip | Bin 263193 -> 0 bytes .../azure-mgmt-rdbms-2.0.0.zip | Bin 264888 -> 0 bytes .../mariadb/_maria_db_management_client.py | 57 +- .../azure/mgmt/rdbms/mariadb/_version.py | 13 - .../aio/_maria_db_management_client.py | 57 +- .../rdbms/mariadb/aio/operations/__init__.py | 10 +- .../aio/operations/_advisors_operations.py | 6 +- .../_check_name_availability_operations.py | 6 +- .../operations/_configurations_operations.py | 10 +- .../aio/operations/_databases_operations.py | 10 +- .../operations/_firewall_rules_operations.py | 10 +- ...ation_based_performance_tier_operations.py | 4 +- ...on_sessions_operation_status_operations.py | 4 +- ...ended_action_sessions_result_operations.py | 4 +- .../aio/operations/_log_files_operations.py | 4 +- .../_maria_db_management_client_operations.py | 58 ++ .../mariadb/aio/operations/_operations.py | 4 +- ...private_endpoint_connections_operations.py | 14 +- .../_private_link_resources_operations.py | 6 +- .../aio/operations/_query_texts_operations.py | 6 +- .../_recommended_actions_operations.py | 6 +- .../_recoverable_servers_operations.py | 99 ++ .../aio/operations/_replicas_operations.py | 4 +- ...erver_based_performance_tier_operations.py | 116 +++ .../_server_parameters_operations.py | 169 ++++ ...rver_security_alert_policies_operations.py | 12 +- .../aio/operations/_servers_operations.py | 16 +- .../_top_query_statistics_operations.py | 8 +- .../_virtual_network_rules_operations.py | 10 +- .../operations/_wait_statistics_operations.py | 8 +- .../mgmt/rdbms/mariadb/models/__init__.py | 8 + .../_maria_db_management_client_enums.py | 7 + .../mgmt/rdbms/mariadb/models/_models.py | 374 +++++--- .../mgmt/rdbms/mariadb/models/_models_py3.py | 383 +++++--- .../mgmt/rdbms/mariadb/operations/__init__.py | 10 +- .../operations/_advisors_operations.py | 6 +- .../_check_name_availability_operations.py | 6 +- .../operations/_configurations_operations.py | 10 +- .../operations/_databases_operations.py | 10 +- .../operations/_firewall_rules_operations.py | 10 +- ...ation_based_performance_tier_operations.py | 4 +- ...on_sessions_operation_status_operations.py | 4 +- ...ended_action_sessions_result_operations.py | 4 +- .../operations/_log_files_operations.py | 4 +- .../_maria_db_management_client_operations.py | 59 ++ .../rdbms/mariadb/operations/_operations.py | 4 +- ...private_endpoint_connections_operations.py | 14 +- .../_private_link_resources_operations.py | 6 +- .../operations/_query_texts_operations.py | 6 +- .../_recommended_actions_operations.py | 6 +- .../_recoverable_servers_operations.py | 104 +++ .../operations/_replicas_operations.py | 4 +- ...erver_based_performance_tier_operations.py | 121 +++ .../_server_parameters_operations.py | 175 ++++ ...rver_security_alert_policies_operations.py | 12 +- .../mariadb/operations/_servers_operations.py | 16 +- .../_top_query_statistics_operations.py | 8 +- .../_virtual_network_rules_operations.py | 10 +- .../operations/_wait_statistics_operations.py | 8 +- .../azure/mgmt/rdbms/mysql/_configuration.py | 19 +- .../rdbms/mysql/_my_sql_management_client.py | 552 ++++-------- .../mgmt/rdbms/mysql/_operations_mixin.py | 68 -- .../azure/mgmt/rdbms/mysql/_version.py | 13 - .../mgmt/rdbms/mysql/aio/_configuration.py | 23 +- .../mysql/aio/_my_sql_management_client.py | 560 ++++-------- .../mgmt/rdbms/mysql/aio/_operations_mixin.py | 64 -- .../operations/__init__.py | 10 +- .../aio/operations/_advisors_operations.py | 18 +- .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../aio/operations/_databases_operations.py | 34 +- .../operations/_firewall_rules_operations.py | 34 +- ...ation_based_performance_tier_operations.py | 12 +- ...on_sessions_operation_status_operations.py | 12 +- ...ended_action_sessions_result_operations.py | 12 +- .../aio/operations/_log_files_operations.py | 12 +- .../_my_sql_management_client_operations.py | 60 +- .../aio/operations/_operations.py | 12 +- ...private_endpoint_connections_operations.py | 50 +- .../_private_link_resources_operations.py | 18 +- .../aio/operations/_query_texts_operations.py | 18 +- .../_recommended_actions_operations.py | 18 +- .../_recoverable_servers_operations.py | 99 ++ .../aio/operations/_replicas_operations.py | 12 +- .../_server_administrators_operations.py | 34 +- ...erver_based_performance_tier_operations.py | 116 +++ .../aio/operations/_server_keys_operations.py | 34 +- .../_server_parameters_operations.py | 169 ++++ ...rver_security_alert_policies_operations.py | 38 +- .../aio/operations/_servers_operations.py | 68 +- .../_top_query_statistics_operations.py | 22 +- .../_virtual_network_rules_operations.py | 34 +- .../operations/_wait_statistics_operations.py | 22 +- .../azure/mgmt/rdbms/mysql/models.py | 7 - .../{v2020_01_01 => }/models/__init__.py | 8 + .../mysql/{v2020_01_01 => }/models/_models.py | 447 +++++---- .../{v2020_01_01 => }/models/_models_py3.py | 456 ++++++---- .../models/_my_sql_management_client_enums.py | 7 + .../aio => }/operations/__init__.py | 10 +- .../operations/_advisors_operations.py | 18 +- .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../operations/_databases_operations.py | 34 +- .../operations/_firewall_rules_operations.py | 34 +- ...ation_based_performance_tier_operations.py | 12 +- ...on_sessions_operation_status_operations.py | 12 +- ...ended_action_sessions_result_operations.py | 12 +- .../operations/_log_files_operations.py | 12 +- .../_my_sql_management_client_operations.py | 61 +- .../operations/_operations.py | 12 +- ...private_endpoint_connections_operations.py | 50 +- .../_private_link_resources_operations.py | 18 +- .../operations/_query_texts_operations.py | 18 +- .../_recommended_actions_operations.py | 18 +- .../_recoverable_servers_operations.py | 104 +++ .../operations/_replicas_operations.py | 12 +- .../_server_administrators_operations.py | 34 +- ...erver_based_performance_tier_operations.py | 121 +++ .../operations/_server_keys_operations.py | 34 +- .../_server_parameters_operations.py | 175 ++++ ...rver_security_alert_policies_operations.py | 38 +- .../operations/_servers_operations.py | 68 +- .../_top_query_statistics_operations.py | 22 +- .../_virtual_network_rules_operations.py | 34 +- .../operations/_wait_statistics_operations.py | 22 +- .../rdbms/mysql/v2020_01_01/_metadata.json | 106 --- .../v2020_01_01/_my_sql_management_client.py | 176 ---- .../aio/_my_sql_management_client.py | 170 ---- .../v2020_07_01_privatepreview/__init__.py | 16 - .../_configuration.py | 70 -- .../v2020_07_01_privatepreview/_metadata.json | 70 -- .../aio/__init__.py | 10 - .../aio/_configuration.py | 66 -- .../__init__.py | 0 .../_configuration.py | 1 + .../_my_sql_management_client.py | 20 +- .../aio/__init__.py | 0 .../aio/_configuration.py | 1 + .../aio/_my_sql_management_client.py | 20 +- .../aio/operations/__init__.py | 0 .../_check_name_availability_operations.py | 18 +- ...virtual_network_subnet_usage_operations.py | 18 +- .../operations/_configurations_operations.py | 40 +- .../aio/operations/_databases_operations.py | 42 +- .../operations/_firewall_rules_operations.py | 42 +- ..._location_based_capabilities_operations.py | 14 +- .../aio/operations/_operations.py | 14 +- .../aio/operations/_replicas_operations.py | 14 +- .../aio/operations/_server_keys_operations.py | 42 +- .../aio/operations/_servers_operations.py | 74 +- .../models/__init__.py | 0 .../models/_models.py | 168 ++-- .../models/_models_py3.py | 171 ++-- .../models/_my_sql_management_client_enums.py | 0 .../operations/__init__.py | 0 .../_check_name_availability_operations.py | 18 +- ...virtual_network_subnet_usage_operations.py | 18 +- .../operations/_configurations_operations.py | 40 +- .../operations/_databases_operations.py | 42 +- .../operations/_firewall_rules_operations.py | 42 +- ..._location_based_capabilities_operations.py | 14 +- .../operations/_operations.py | 14 +- .../operations/_replicas_operations.py | 14 +- .../operations/_server_keys_operations.py | 42 +- .../operations/_servers_operations.py | 74 +- .../py.typed | 0 .../mgmt/rdbms/postgresql/_configuration.py | 19 +- .../_postgre_sql_management_client.py | 414 +++------ .../azure/mgmt/rdbms/postgresql/_version.py | 13 - .../rdbms/postgresql/aio/_configuration.py | 23 +- .../aio/_postgre_sql_management_client.py | 424 +++------ .../aio/operations/__init__.py | 6 + .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../aio/operations/_databases_operations.py | 34 +- .../operations/_firewall_rules_operations.py | 34 +- ...ation_based_performance_tier_operations.py | 12 +- .../aio/operations/_log_files_operations.py | 12 +- .../aio/operations/_operations.py | 12 +- ...private_endpoint_connections_operations.py | 50 +- .../_private_link_resources_operations.py | 18 +- .../_recoverable_servers_operations.py | 99 ++ .../aio/operations/_replicas_operations.py | 12 +- .../_server_administrators_operations.py | 34 +- ...erver_based_performance_tier_operations.py | 116 +++ .../aio/operations/_server_keys_operations.py | 34 +- .../_server_parameters_operations.py | 169 ++++ ...rver_security_alert_policies_operations.py | 38 +- .../aio/operations/_servers_operations.py | 56 +- .../_virtual_network_rules_operations.py | 34 +- .../azure/mgmt/rdbms/postgresql/models.py | 7 - .../{v2020_01_01 => }/models/__init__.py | 3 + .../{v2020_01_01 => }/models/_models.py | 383 ++++---- .../{v2020_01_01 => }/models/_models_py3.py | 389 ++++---- .../_postgre_sql_management_client_enums.py | 0 .../{v2020_01_01 => }/operations/__init__.py | 6 + .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../operations/_databases_operations.py | 34 +- .../operations/_firewall_rules_operations.py | 34 +- ...ation_based_performance_tier_operations.py | 12 +- .../operations/_log_files_operations.py | 12 +- .../operations/_operations.py | 12 +- ...private_endpoint_connections_operations.py | 50 +- .../_private_link_resources_operations.py | 18 +- .../_recoverable_servers_operations.py | 104 +++ .../operations/_replicas_operations.py | 12 +- .../_server_administrators_operations.py | 34 +- ...erver_based_performance_tier_operations.py | 121 +++ .../operations/_server_keys_operations.py | 34 +- .../_server_parameters_operations.py | 175 ++++ ...rver_security_alert_policies_operations.py | 38 +- .../operations/_servers_operations.py | 56 +- .../_virtual_network_rules_operations.py | 34 +- .../postgresql/v2020_01_01/_metadata.json | 75 -- .../_postgre_sql_management_client.py | 140 --- .../aio/_postgre_sql_management_client.py | 134 --- .../rdbms/postgresql/v2020_01_01/py.typed | 1 - .../v2020_02_14_preview/__init__.py | 16 - .../v2020_02_14_preview/_configuration.py | 70 -- .../v2020_02_14_preview/_metadata.json | 67 -- .../v2020_02_14_preview/aio/__init__.py | 10 - .../v2020_02_14_preview/aio/_configuration.py | 66 -- .../postgresql/v2020_02_14_preview/py.typed | 1 - .../__init__.py | 0 .../_configuration.py | 0 .../_postgre_sql_management_client.py | 19 +- .../aio/__init__.py | 0 .../aio/_configuration.py | 0 .../aio/_postgre_sql_management_client.py | 19 +- .../aio/operations/__init__.py | 2 + .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../aio/operations/_databases_operations.py | 431 +++++++++ .../operations/_firewall_rules_operations.py | 34 +- ..._location_based_capabilities_operations.py | 12 +- .../aio/operations/_operations.py | 12 +- .../aio/operations/_servers_operations.py | 56 +- ...virtual_network_subnet_usage_operations.py | 16 +- .../models/__init__.py | 6 + .../models/_models.py | 176 ++-- .../models/_models_py3.py | 182 ++-- .../_postgre_sql_management_client_enums.py | 0 .../operations/__init__.py | 2 + .../_check_name_availability_operations.py | 16 +- .../operations/_configurations_operations.py | 34 +- .../operations/_databases_operations.py | 441 +++++++++ .../operations/_firewall_rules_operations.py | 34 +- ..._location_based_capabilities_operations.py | 12 +- .../operations/_operations.py | 12 +- .../operations/_servers_operations.py | 56 +- ...virtual_network_subnet_usage_operations.py | 16 +- .../py.typed | 0 ...zure_mgmt_rdbms-1.9.0-py2.py3-none-any.whl | Bin 254031 -> 0 bytes ...zure_mgmt_rdbms-2.0.0-py2.py3-none-any.whl | Bin 224485 -> 0 bytes .../test_cli_mgmt_mariadb.test_mariadb.yaml | 622 +++++++------ .../test_cli_mgmt_mysql.test_mysql.yaml | 846 +++++++++++------- ...t_cli_mgmt_postgresql.test_postgresql.yaml | 550 ++++++------ .../tests/test_cli_mgmt_mysql.py | 14 +- .../tests/test_cli_mgmt_postgresql.py | 10 +- 261 files changed, 8975 insertions(+), 6722 deletions(-) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure-mgmt-rdbms-1.9.0.zip delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure-mgmt-rdbms-2.0.0.zip delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_version.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recoverable_servers_operations.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_based_performance_tier_operations.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_parameters_operations.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recoverable_servers_operations.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_based_performance_tier_operations.py create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_parameters_operations.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_operations_mixin.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_version.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_operations_mixin.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => aio}/operations/__init__.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_advisors_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_check_name_availability_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_configurations_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_databases_operations.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_location_based_performance_tier_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_location_based_recommended_action_sessions_result_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_log_files_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_my_sql_management_client_operations.py (70%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_private_endpoint_connections_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_private_link_resources_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_query_texts_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_recommended_actions_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recoverable_servers_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_replicas_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_server_administrators_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_based_performance_tier_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_server_keys_operations.py (95%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_parameters_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_server_security_alert_policies_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_servers_operations.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_top_query_statistics_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_virtual_network_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/aio/operations/_wait_statistics_operations.py (93%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/models/__init__.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/models/_models.py (84%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/models/_models_py3.py (85%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/models/_my_sql_management_client_enums.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01/aio => }/operations/__init__.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_advisors_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_check_name_availability_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_configurations_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_databases_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_location_based_performance_tier_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_location_based_recommended_action_sessions_operation_status_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_location_based_recommended_action_sessions_result_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_log_files_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_my_sql_management_client_operations.py (70%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_private_endpoint_connections_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_private_link_resources_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_query_texts_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_recommended_actions_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recoverable_servers_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_replicas_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_server_administrators_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_based_performance_tier_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_server_keys_operations.py (95%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_parameters_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_server_security_alert_policies_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_servers_operations.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_top_query_statistics_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_virtual_network_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/{v2020_01_01 => }/operations/_wait_statistics_operations.py (93%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_metadata.json delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_my_sql_management_client.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_my_sql_management_client.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/__init__.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_configuration.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_metadata.json delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/__init__.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_configuration.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_01_01 => mysql_flexibleservers}/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_01_01 => mysql_flexibleservers}/_configuration.py (98%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/_my_sql_management_client.py (83%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_01_01 => mysql_flexibleservers}/aio/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_01_01 => mysql_flexibleservers}/aio/_configuration.py (98%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/_my_sql_management_client.py (82%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_check_name_availability_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_check_virtual_network_subnet_usage_operations.py (88%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_configurations_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_databases_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_firewall_rules_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_location_based_capabilities_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_replicas_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_server_keys_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/aio/operations/_servers_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/models/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/models/_models.py (87%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/models/_models_py3.py (88%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/models/_my_sql_management_client_enums.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_check_name_availability_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_check_virtual_network_subnet_usage_operations.py (88%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_configurations_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_databases_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_firewall_rules_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_location_based_capabilities_operations.py (92%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_replicas_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_server_keys_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => mysql_flexibleservers}/operations/_servers_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_01_01 => mysql_flexibleservers}/py.typed (100%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_version.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/__init__.py (85%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_check_name_availability_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_configurations_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_databases_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_location_based_performance_tier_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_log_files_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_private_endpoint_connections_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_private_link_resources_operations.py (93%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_recoverable_servers_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_replicas_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_server_administrators_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_based_performance_tier_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_server_keys_operations.py (95%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_parameters_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_server_security_alert_policies_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_servers_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/aio/operations/_virtual_network_rules_operations.py (95%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/models/__init__.py (98%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/models/_models.py (83%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/models/_models_py3.py (84%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/models/_postgre_sql_management_client_enums.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/__init__.py (85%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_check_name_availability_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_configurations_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_databases_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_location_based_performance_tier_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_log_files_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_private_endpoint_connections_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_private_link_resources_operations.py (93%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_recoverable_servers_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_replicas_operations.py (94%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_server_administrators_operations.py (94%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_based_performance_tier_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_server_keys_operations.py (95%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_parameters_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_server_security_alert_policies_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_servers_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/{v2020_01_01 => }/operations/_virtual_network_rules_operations.py (95%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_metadata.json delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_postgre_sql_management_client.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_postgre_sql_management_client.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/py.typed delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/__init__.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_configuration.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_metadata.json delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/__init__.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_configuration.py delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/py.typed rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_01_01 => postgresql_flexibleservers}/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_01_01 => postgresql_flexibleservers}/_configuration.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/_postgre_sql_management_client.py (83%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_01_01 => postgresql_flexibleservers}/aio/__init__.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_01_01 => postgresql_flexibleservers}/aio/_configuration.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/_postgre_sql_management_client.py (82%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/__init__.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_check_name_availability_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_configurations_operations.py (93%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_databases_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_location_based_capabilities_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_servers_operations.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/aio/operations/_virtual_network_subnet_usage_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/models/__init__.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/models/_models.py (85%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/models/_models_py3.py (85%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/models/_postgre_sql_management_client_enums.py (100%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/__init__.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_check_name_availability_operations.py (90%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_configurations_operations.py (93%) create mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_databases_operations.py rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_firewall_rules_operations.py (95%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_location_based_capabilities_operations.py (93%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_operations.py (91%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_servers_operations.py (96%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{postgresql/v2020_02_14_preview => postgresql_flexibleservers}/operations/_virtual_network_subnet_usage_operations.py (89%) rename sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/{mysql/v2020_07_01_privatepreview => postgresql_flexibleservers}/py.typed (100%) delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure_mgmt_rdbms-1.9.0-py2.py3-none-any.whl delete mode 100644 sdk/rdbms/azure-mgmt-rdbms/azure_mgmt_rdbms-2.0.0-py2.py3-none-any.whl diff --git a/sdk/rdbms/azure-mgmt-rdbms/CHANGELOG.md b/sdk/rdbms/azure-mgmt-rdbms/CHANGELOG.md index 886e8cae4e1b..0da773b0e53a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/CHANGELOG.md +++ b/sdk/rdbms/azure-mgmt-rdbms/CHANGELOG.md @@ -1,5 +1,9 @@ # Release History +## 8.0.0 (2020-12-28) + +- GA release + ## 8.0.0b1 (2020-11-05) This is beta preview version. diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure-mgmt-rdbms-1.9.0.zip b/sdk/rdbms/azure-mgmt-rdbms/azure-mgmt-rdbms-1.9.0.zip deleted file mode 100644 index d15f2456b68296468c6d3c4dc03b4966d976485e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263193 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

k*^$>X`KVJ`g(*W;$5PDD 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

NBEzLFKSW=8_Zc@Apa{`J=QG{v-sJcq*{;`yS} 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%0D$bjQwbc5?X1iV_5TIIty0_hmNXE2{^$y@ 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

*)g+c&u^Ra$00{xbT<)A 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

WjKT^ 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π5MAb{84MweZn4L!s4rM26R2Ves zxr%GF?wL8S7{9fzTrS_f-kQ)s!ZpgPSRy zVxjBs-cXDiFo*pokIUq8Qg1vuj|a&Vk-97&THWQB55(E)%k9g6u8UK45Tq<4 zzKW0-pXTBv@NSuF`fZRdF%a&z+HR*1M+t)=!jguqDz{Pv%%6=?mh1r$xGhhQK&@oe z-4LPhj0i5MyJYG%DWDgsmgOqYET9bl?Y08|BB>nL2pkw5ENva--q+!AWQq+Kz06;` zN4BCkNk{xtjet9CViFR8F~1cLpn>VR%!&Ymx)Q69)YU~K5Jmrb91un<)B#=8jYCm* z(@QRvAvxH&SO?0UYMZn-+Dfv*sy7YJ6E<{H_$KHo>C2~P!MTEQe`#zylG=IAzs@1zlNK=@Y-0)PLLqQAA02q-&Ub+HAdcAHf+7?Y=NH686^-QW#7pxoo zL4t@})`Ke^BC}&zv}asXa4?QO=EhOOcMJ>$wQw&DJjS)xn7LbN|_qbqVDdnb+MD%b~>!P&AS zT)sjZrM1wTsf(T>euxMG$g7B3I9__Z`)Q}WKx=iX=hN_D>1=a4SR_+zWlCPP^ZUL; zS3KN(esSE!3ZM3ReC?0OLTuuwVZC5iR}Xd=-lS3*=A+#$tuIQ z4xAB^-UeYM#YgEQDz5INBjof`xg>YYgj}ysyY#B?YNE(#zMvl08_!cGkdIe4>nf?mn>Dh3cUoh<9=T6jWsl)k z1X6FVls~@VPK!_me&$5Y!QMtW;QN`%b%0VEOI%uNd96^qhRba76)oggx+&P z-{w*f7r7A&>A%*>tG6V2fDb*u#Z{eV#O_mraGjJ-vihjvD-LRWL zs8v{VTb&iYWt@uYRZwmm)OxL4aj=KkV6!Bw(B76Mny819)OrsT;dMU;N{vL@{(yg5 zw(;f0UfhEvIj^5`v*YkddM_lk;vouJc@^o@y3>@R%;{qeP?OTHn8p{BOB&1GZ80DA zl5x?yGBTTp!{gTCB<2$MvB!{yNM2>4rrzNEmFGnYR5&|uoBpCu$;0&ms=ed?yM{a}-X3cD0Vn+k005N# zD-G%BYU<>v?_%oV@}B}y^E+;V4duJrFJvh*DW&Nr_P?glP)_A!bU;mJQ) zTTb0NLTns^Hy_eGke1Zvg!Di|NiF!4WFnpnDI8hwCA5g}mahbo5=2r_wJ4alo$PeH zF!k>VLN`H?=kHXcIiZE5tZu>xku1iDl<1(MNd-XAt`o6~U5U(8q$VOzKxKhBql+{S zF5JRIsRm`DBEpX)1g4rQ@4AuUNQk5ZS}BL(V)AI`VlTmE4`EF4Hi@dh8FtDZ(KnRa9AU>1n4VXoy-EX|054Gy{J^k9b9;F=ZdXoD`V- zL#2afRPy{U%*2V{Br1;rQ&ZJ9<`V?dL6p$HYH)OBMhqAvm}o$}wGcZ!B&kXtYDkG5 zj7HGO<&G=@b)kcX_=rYR#vHT3esxe0td$KYs4~U4RWu|a2n9(MFXq}1OsEppIeDU_ ziUSerqsy8TNeBc(^F?C`3c4&7&{8T-bx9nWm9-jW=yHNM^(i8x#~k3iQf4X>YL^v} z`KJWkH&o$7Y1i|OMw03RwSMX&+(Rj_sfeq40ko0KZ#lOR*#PyiS&$8lD~6Kegk

~d3gT_!vSnFwo&wlesw6^#+@q~Ga&dlX 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

3K@Khv)@D;TypY-l>T>wiT+1 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 JUxKn9`ag#o-OT_1 diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_maria_db_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_maria_db_management_client.py index 269909418414..1f4921e7f690 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_maria_db_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_maria_db_management_client.py @@ -24,15 +24,18 @@ from .operations import VirtualNetworkRulesOperations from .operations import DatabasesOperations from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations from .operations import LogFilesOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations from .operations import LocationBasedPerformanceTierOperations from .operations import CheckNameAvailabilityOperations from .operations import Operations from .operations import QueryTextsOperations from .operations import TopQueryStatisticsOperations from .operations import WaitStatisticsOperations -from .operations import AdvisorsOperations from .operations import MariaDBManagementClientOperationsMixin +from .operations import AdvisorsOperations from .operations import RecommendedActionsOperations from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from .operations import LocationBasedRecommendedActionSessionsResultOperations @@ -46,45 +49,51 @@ class MariaDBManagementClient(MariaDBManagementClientOperationsMixin): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MariaDB resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: maria_db_management_client.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.mariadb.operations.ServersOperations :ivar replicas: ReplicasOperations operations - :vartype replicas: maria_db_management_client.operations.ReplicasOperations + :vartype replicas: azure.mgmt.rdbms.mariadb.operations.ReplicasOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: maria_db_management_client.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.mariadb.operations.FirewallRulesOperations :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: maria_db_management_client.operations.VirtualNetworkRulesOperations + :vartype virtual_network_rules: azure.mgmt.rdbms.mariadb.operations.VirtualNetworkRulesOperations :ivar databases: DatabasesOperations operations - :vartype databases: maria_db_management_client.operations.DatabasesOperations + :vartype databases: azure.mgmt.rdbms.mariadb.operations.DatabasesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: maria_db_management_client.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.mariadb.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.mariadb.operations.ServerParametersOperations :ivar log_files: LogFilesOperations operations - :vartype log_files: maria_db_management_client.operations.LogFilesOperations + :vartype log_files: azure.mgmt.rdbms.mariadb.operations.LogFilesOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.mariadb.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.mariadb.operations.ServerBasedPerformanceTierOperations :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: maria_db_management_client.operations.LocationBasedPerformanceTierOperations + :vartype location_based_performance_tier: azure.mgmt.rdbms.mariadb.operations.LocationBasedPerformanceTierOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: maria_db_management_client.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.mariadb.operations.CheckNameAvailabilityOperations :ivar operations: Operations operations - :vartype operations: maria_db_management_client.operations.Operations + :vartype operations: azure.mgmt.rdbms.mariadb.operations.Operations :ivar query_texts: QueryTextsOperations operations - :vartype query_texts: maria_db_management_client.operations.QueryTextsOperations + :vartype query_texts: azure.mgmt.rdbms.mariadb.operations.QueryTextsOperations :ivar top_query_statistics: TopQueryStatisticsOperations operations - :vartype top_query_statistics: maria_db_management_client.operations.TopQueryStatisticsOperations + :vartype top_query_statistics: azure.mgmt.rdbms.mariadb.operations.TopQueryStatisticsOperations :ivar wait_statistics: WaitStatisticsOperations operations - :vartype wait_statistics: maria_db_management_client.operations.WaitStatisticsOperations + :vartype wait_statistics: azure.mgmt.rdbms.mariadb.operations.WaitStatisticsOperations :ivar advisors: AdvisorsOperations operations - :vartype advisors: maria_db_management_client.operations.AdvisorsOperations + :vartype advisors: azure.mgmt.rdbms.mariadb.operations.AdvisorsOperations :ivar recommended_actions: RecommendedActionsOperations operations - :vartype recommended_actions: maria_db_management_client.operations.RecommendedActionsOperations + :vartype recommended_actions: azure.mgmt.rdbms.mariadb.operations.RecommendedActionsOperations :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations - :vartype location_based_recommended_action_sessions_operation_status: maria_db_management_client.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations + :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mariadb.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations - :vartype location_based_recommended_action_sessions_result: maria_db_management_client.operations.LocationBasedRecommendedActionSessionsResultOperations + :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mariadb.operations.LocationBasedRecommendedActionSessionsResultOperations :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: maria_db_management_client.operations.PrivateEndpointConnectionsOperations + :vartype private_endpoint_connections: azure.mgmt.rdbms.mariadb.operations.PrivateEndpointConnectionsOperations :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: maria_db_management_client.operations.PrivateLinkResourcesOperations + :vartype private_link_resources: azure.mgmt.rdbms.mariadb.operations.PrivateLinkResourcesOperations :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: maria_db_management_client.operations.ServerSecurityAlertPoliciesOperations + :vartype server_security_alert_policies: azure.mgmt.rdbms.mariadb.operations.ServerSecurityAlertPoliciesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. @@ -123,8 +132,14 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.configurations = ConfigurationsOperations( self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) self.log_files = LogFilesOperations( self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) self.location_based_performance_tier = LocationBasedPerformanceTierOperations( self._client, self._config, self._serialize, self._deserialize) self.check_name_availability = CheckNameAvailabilityOperations( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_version.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_version.py deleted file mode 100644 index 7cf3ebf6b364..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/_version.py +++ /dev/null @@ -1,13 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -VERSION = "8.0.0b1" - diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/_maria_db_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/_maria_db_management_client.py index 24874235ede1..0e15a045002a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/_maria_db_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/_maria_db_management_client.py @@ -22,15 +22,18 @@ from .operations import VirtualNetworkRulesOperations from .operations import DatabasesOperations from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations from .operations import LogFilesOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations from .operations import LocationBasedPerformanceTierOperations from .operations import CheckNameAvailabilityOperations from .operations import Operations from .operations import QueryTextsOperations from .operations import TopQueryStatisticsOperations from .operations import WaitStatisticsOperations -from .operations import AdvisorsOperations from .operations import MariaDBManagementClientOperationsMixin +from .operations import AdvisorsOperations from .operations import RecommendedActionsOperations from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from .operations import LocationBasedRecommendedActionSessionsResultOperations @@ -44,45 +47,51 @@ class MariaDBManagementClient(MariaDBManagementClientOperationsMixin): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MariaDB resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: maria_db_management_client.aio.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.mariadb.aio.operations.ServersOperations :ivar replicas: ReplicasOperations operations - :vartype replicas: maria_db_management_client.aio.operations.ReplicasOperations + :vartype replicas: azure.mgmt.rdbms.mariadb.aio.operations.ReplicasOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: maria_db_management_client.aio.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.mariadb.aio.operations.FirewallRulesOperations :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: maria_db_management_client.aio.operations.VirtualNetworkRulesOperations + :vartype virtual_network_rules: azure.mgmt.rdbms.mariadb.aio.operations.VirtualNetworkRulesOperations :ivar databases: DatabasesOperations operations - :vartype databases: maria_db_management_client.aio.operations.DatabasesOperations + :vartype databases: azure.mgmt.rdbms.mariadb.aio.operations.DatabasesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: maria_db_management_client.aio.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.mariadb.aio.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.mariadb.aio.operations.ServerParametersOperations :ivar log_files: LogFilesOperations operations - :vartype log_files: maria_db_management_client.aio.operations.LogFilesOperations + :vartype log_files: azure.mgmt.rdbms.mariadb.aio.operations.LogFilesOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.mariadb.aio.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.mariadb.aio.operations.ServerBasedPerformanceTierOperations :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: maria_db_management_client.aio.operations.LocationBasedPerformanceTierOperations + :vartype location_based_performance_tier: azure.mgmt.rdbms.mariadb.aio.operations.LocationBasedPerformanceTierOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: maria_db_management_client.aio.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.mariadb.aio.operations.CheckNameAvailabilityOperations :ivar operations: Operations operations - :vartype operations: maria_db_management_client.aio.operations.Operations + :vartype operations: azure.mgmt.rdbms.mariadb.aio.operations.Operations :ivar query_texts: QueryTextsOperations operations - :vartype query_texts: maria_db_management_client.aio.operations.QueryTextsOperations + :vartype query_texts: azure.mgmt.rdbms.mariadb.aio.operations.QueryTextsOperations :ivar top_query_statistics: TopQueryStatisticsOperations operations - :vartype top_query_statistics: maria_db_management_client.aio.operations.TopQueryStatisticsOperations + :vartype top_query_statistics: azure.mgmt.rdbms.mariadb.aio.operations.TopQueryStatisticsOperations :ivar wait_statistics: WaitStatisticsOperations operations - :vartype wait_statistics: maria_db_management_client.aio.operations.WaitStatisticsOperations + :vartype wait_statistics: azure.mgmt.rdbms.mariadb.aio.operations.WaitStatisticsOperations :ivar advisors: AdvisorsOperations operations - :vartype advisors: maria_db_management_client.aio.operations.AdvisorsOperations + :vartype advisors: azure.mgmt.rdbms.mariadb.aio.operations.AdvisorsOperations :ivar recommended_actions: RecommendedActionsOperations operations - :vartype recommended_actions: maria_db_management_client.aio.operations.RecommendedActionsOperations + :vartype recommended_actions: azure.mgmt.rdbms.mariadb.aio.operations.RecommendedActionsOperations :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations - :vartype location_based_recommended_action_sessions_operation_status: maria_db_management_client.aio.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations + :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mariadb.aio.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations - :vartype location_based_recommended_action_sessions_result: maria_db_management_client.aio.operations.LocationBasedRecommendedActionSessionsResultOperations + :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mariadb.aio.operations.LocationBasedRecommendedActionSessionsResultOperations :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: maria_db_management_client.aio.operations.PrivateEndpointConnectionsOperations + :vartype private_endpoint_connections: azure.mgmt.rdbms.mariadb.aio.operations.PrivateEndpointConnectionsOperations :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: maria_db_management_client.aio.operations.PrivateLinkResourcesOperations + :vartype private_link_resources: azure.mgmt.rdbms.mariadb.aio.operations.PrivateLinkResourcesOperations :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: maria_db_management_client.aio.operations.ServerSecurityAlertPoliciesOperations + :vartype server_security_alert_policies: azure.mgmt.rdbms.mariadb.aio.operations.ServerSecurityAlertPoliciesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. @@ -120,8 +129,14 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.configurations = ConfigurationsOperations( self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) self.log_files = LogFilesOperations( self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) self.location_based_performance_tier = LocationBasedPerformanceTierOperations( self._client, self._config, self._serialize, self._deserialize) self.check_name_availability = CheckNameAvailabilityOperations( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/__init__.py index 61910e206185..33ffedbabf7f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/__init__.py @@ -12,15 +12,18 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations from ._query_texts_operations import QueryTextsOperations from ._top_query_statistics_operations import TopQueryStatisticsOperations from ._wait_statistics_operations import WaitStatisticsOperations -from ._advisors_operations import AdvisorsOperations from ._maria_db_management_client_operations import MariaDBManagementClientOperationsMixin +from ._advisors_operations import AdvisorsOperations from ._recommended_actions_operations import RecommendedActionsOperations from ._location_based_recommended_action_sessions_operation_status_operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from ._location_based_recommended_action_sessions_result_operations import LocationBasedRecommendedActionSessionsResultOperations @@ -35,15 +38,18 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', 'QueryTextsOperations', 'TopQueryStatisticsOperations', 'WaitStatisticsOperations', - 'AdvisorsOperations', 'MariaDBManagementClientOperationsMixin', + 'AdvisorsOperations', 'RecommendedActionsOperations', 'LocationBasedRecommendedActionSessionsOperationStatusOperations', 'LocationBasedRecommendedActionSessionsResultOperations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_advisors_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_advisors_operations.py index 7eb3c67dbcde..84d6e6c921e9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_advisors_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_advisors_operations.py @@ -26,7 +26,7 @@ class AdvisorsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -58,7 +58,7 @@ async def get( :type advisor_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Advisor, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Advisor + :rtype: ~azure.mgmt.rdbms.mariadb.models.Advisor :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Advisor"] @@ -117,7 +117,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either AdvisorsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.AdvisorsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.AdvisorsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.AdvisorsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_check_name_availability_operations.py index 8325a183fb95..fe80dcee5104 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_check_name_availability_operations.py @@ -25,7 +25,7 @@ class CheckNameAvailabilityOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -49,10 +49,10 @@ async def execute( :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~maria_db_management_client.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mariadb.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~maria_db_management_client.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mariadb.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_configurations_operations.py index 48aa2a324053..35a100435eb2 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_configurations_operations.py @@ -28,7 +28,7 @@ class ConfigurationsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -117,7 +117,7 @@ async def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~maria_db_management_client.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mariadb.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -125,7 +125,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.Configuration] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -193,7 +193,7 @@ async def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Configuration + :rtype: ~azure.mgmt.rdbms.mariadb.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] @@ -252,7 +252,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.ConfigurationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_databases_operations.py index 81bb137b06f8..da11cbfa53ec 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_databases_operations.py @@ -28,7 +28,7 @@ class DatabasesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~maria_db_management_client.models.Database + :type parameters: ~azure.mgmt.rdbms.mariadb.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,7 +128,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.Database] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -311,7 +311,7 @@ async def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Database + :rtype: ~azure.mgmt.rdbms.mariadb.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] @@ -370,7 +370,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.DatabaseListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_firewall_rules_operations.py index bafa48421023..f21d0d1de644 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_firewall_rules_operations.py @@ -28,7 +28,7 @@ class FirewallRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~maria_db_management_client.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mariadb.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,7 +128,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.FirewallRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -311,7 +311,7 @@ async def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~maria_db_management_client.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mariadb.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] @@ -370,7 +370,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.FirewallRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_performance_tier_operations.py index c27d73ae4af9..9fa3e18ac34a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_performance_tier_operations.py @@ -26,7 +26,7 @@ class LocationBasedPerformanceTierOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -52,7 +52,7 @@ def list( :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.PerformanceTierListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py index 590482485b79..ecdf27415255 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py @@ -25,7 +25,7 @@ class LocationBasedRecommendedActionSessionsOperationStatusOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -54,7 +54,7 @@ async def get( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendedActionSessionsOperationStatus, or the result of cls(response) - :rtype: ~maria_db_management_client.models.RecommendedActionSessionsOperationStatus + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecommendedActionSessionsOperationStatus :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendedActionSessionsOperationStatus"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_result_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_result_operations.py index 7abacab8a998..8b3ab71b5590 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_result_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_location_based_recommended_action_sessions_result_operations.py @@ -26,7 +26,7 @@ class LocationBasedRecommendedActionSessionsResultOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -55,7 +55,7 @@ def list( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.RecommendationActionsResultListor ~maria_db_management_client.models.RecommendationActionsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_log_files_operations.py index 63a92af8f275..39f44a9e768d 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_log_files_operations.py @@ -26,7 +26,7 @@ class LogFilesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -55,7 +55,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.LogFileListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_maria_db_management_client_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_maria_db_management_client_operations.py index 736872281df2..2d3b99b523b1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_maria_db_management_client_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_maria_db_management_client_operations.py @@ -22,6 +22,64 @@ class MariaDBManagementClientOperationsMixin: + async def reset_query_performance_insight_data( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> "_models.QueryPerformanceInsightResetDataResult": + """Reset data for Query Performance Insight. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: QueryPerformanceInsightResetDataResult, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryPerformanceInsightResetDataResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryPerformanceInsightResetDataResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.reset_query_performance_insight_data.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('QueryPerformanceInsightResetDataResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + reset_query_performance_insight_data.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/resetQueryPerformanceInsightData'} # type: ignore + async def _create_recommended_action_session_initial( self, resource_group_name: str, diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_operations.py index 6a7d54bef070..fc3837f14471 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_operations.py @@ -25,7 +25,7 @@ class Operations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -48,7 +48,7 @@ async def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~maria_db_management_client.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mariadb.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_endpoint_connections_operations.py index b07a793aa3b9..d89fdbe5f841 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_endpoint_connections_operations.py @@ -28,7 +28,7 @@ class PrivateEndpointConnectionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ async def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~maria_db_management_client.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] @@ -179,7 +179,7 @@ async def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~maria_db_management_client.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -187,7 +187,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -428,7 +428,7 @@ async def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~maria_db_management_client.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.mariadb.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -436,7 +436,7 @@ async def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -501,7 +501,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_link_resources_operations.py index 95f8c439d59d..9457e80ac678 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_private_link_resources_operations.py @@ -26,7 +26,7 @@ class PrivateLinkResourcesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -55,7 +55,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] @@ -132,7 +132,7 @@ async def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~maria_db_management_client.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.mariadb.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_query_texts_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_query_texts_operations.py index c78c1799b5f9..02f7c105c91e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_query_texts_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_query_texts_operations.py @@ -26,7 +26,7 @@ class QueryTextsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -58,7 +58,7 @@ async def get( :type query_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryText, or the result of cls(response) - :rtype: ~maria_db_management_client.models.QueryText + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryText :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryText"] @@ -120,7 +120,7 @@ def list_by_server( :type query_ids: list[str] :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either QueryTextsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.QueryTextsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.QueryTextsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryTextsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recommended_actions_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recommended_actions_operations.py index 0ec0b4d002ae..2a6cfb3f9f8e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recommended_actions_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recommended_actions_operations.py @@ -26,7 +26,7 @@ class RecommendedActionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -61,7 +61,7 @@ async def get( :type recommended_action_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendationAction, or the result of cls(response) - :rtype: ~maria_db_management_client.models.RecommendationAction + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecommendationAction :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationAction"] @@ -127,7 +127,7 @@ def list_by_server( :type session_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.RecommendationActionsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..1fb5755fd096 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_recoverable_servers_operations.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations: + """RecoverableServersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def get( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> "_models.RecoverableServerResource": + """Gets a recoverable MariaDB Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_replicas_operations.py index e0cc3d953b2b..f9d81b942732 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_replicas_operations.py @@ -26,7 +26,7 @@ class ReplicasOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -55,7 +55,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..863c4ae41900 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,116 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations: + """ServerBasedPerformanceTierOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> AsyncIterable["_models.PerformanceTierListResult"]: + """List all the performance tiers for a MariaDB server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..e0a4937d7995 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_parameters_operations.py @@ -0,0 +1,169 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations: + """ServerParametersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _list_update_configurations_initial( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> Optional["_models.ConfigurationListResult"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/updateConfigurations'} # type: ignore + + async def begin_list_update_configurations( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> AsyncLROPoller["_models.ConfigurationListResult"]: + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_security_alert_policies_operations.py index 1b41ff214798..bfb9e1f20363 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_server_security_alert_policies_operations.py @@ -27,7 +27,7 @@ class ServerSecurityAlertPoliciesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -56,10 +56,10 @@ async def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~maria_db_management_client.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mariadb.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~maria_db_management_client.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] @@ -176,9 +176,9 @@ async def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~maria_db_management_client.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mariadb.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~maria_db_management_client.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -186,7 +186,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_servers_operations.py index 6ef792324046..69f60469e1fb 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_servers_operations.py @@ -28,7 +28,7 @@ class ServersOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -116,7 +116,7 @@ async def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~maria_db_management_client.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -124,7 +124,7 @@ async def begin_create( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -243,7 +243,7 @@ async def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~maria_db_management_client.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -251,7 +251,7 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -422,7 +422,7 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Server + :rtype: ~azure.mgmt.rdbms.mariadb.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] @@ -477,7 +477,7 @@ def list_by_resource_group( :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] @@ -544,7 +544,7 @@ def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_top_query_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_top_query_statistics_operations.py index f06e544cb14a..7c67b5a302a4 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_top_query_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_top_query_statistics_operations.py @@ -26,7 +26,7 @@ class TopQueryStatisticsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -58,7 +58,7 @@ async def get( :type query_statistic_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryStatistic, or the result of cls(response) - :rtype: ~maria_db_management_client.models.QueryStatistic + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryStatistic :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryStatistic"] @@ -117,10 +117,10 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving top query statistics. - :type parameters: ~maria_db_management_client.models.TopQueryStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mariadb.models.TopQueryStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TopQueryStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.TopQueryStatisticsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.TopQueryStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.TopQueryStatisticsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_virtual_network_rules_operations.py index 7db3056e3cda..f930458d539b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_virtual_network_rules_operations.py @@ -28,7 +28,7 @@ class VirtualNetworkRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ async def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~maria_db_management_client.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] @@ -182,7 +182,7 @@ async def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~maria_db_management_client.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -190,7 +190,7 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~maria_db_management_client.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -368,7 +368,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_wait_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_wait_statistics_operations.py index 2da183d1fe4e..aea27c85500e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_wait_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/aio/operations/_wait_statistics_operations.py @@ -26,7 +26,7 @@ class WaitStatisticsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -58,7 +58,7 @@ async def get( :type wait_statistics_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: WaitStatistic, or the result of cls(response) - :rtype: ~maria_db_management_client.models.WaitStatistic + :rtype: ~azure.mgmt.rdbms.mariadb.models.WaitStatistic :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatistic"] @@ -117,10 +117,10 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving wait statistics. - :type parameters: ~maria_db_management_client.models.WaitStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mariadb.models.WaitStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either WaitStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~maria_db_management_client.models.WaitStatisticsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mariadb.models.WaitStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatisticsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/__init__.py index a530aaf8ae7d..97fd21465cac 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/__init__.py @@ -36,12 +36,14 @@ from ._models_py3 import PrivateLinkResourceProperties from ._models_py3 import PrivateLinkServiceConnectionStateProperty from ._models_py3 import ProxyResource + from ._models_py3 import QueryPerformanceInsightResetDataResult from ._models_py3 import QueryStatistic from ._models_py3 import QueryText from ._models_py3 import QueryTextsResultList from ._models_py3 import RecommendationAction from ._models_py3 import RecommendationActionsResultList from ._models_py3 import RecommendedActionSessionsOperationStatus + from ._models_py3 import RecoverableServerResource from ._models_py3 import Resource from ._models_py3 import Server from ._models_py3 import ServerForCreate @@ -97,12 +99,14 @@ from ._models import PrivateLinkResourceProperties # type: ignore from ._models import PrivateLinkServiceConnectionStateProperty # type: ignore from ._models import ProxyResource # type: ignore + from ._models import QueryPerformanceInsightResetDataResult # type: ignore from ._models import QueryStatistic # type: ignore from ._models import QueryText # type: ignore from ._models import QueryTextsResultList # type: ignore from ._models import RecommendationAction # type: ignore from ._models import RecommendationActionsResultList # type: ignore from ._models import RecommendedActionSessionsOperationStatus # type: ignore + from ._models import RecoverableServerResource # type: ignore from ._models import Resource # type: ignore from ._models import Server # type: ignore from ._models import ServerForCreate # type: ignore @@ -137,6 +141,7 @@ PrivateLinkServiceConnectionStateActionsRequire, PrivateLinkServiceConnectionStateStatus, PublicNetworkAccessEnum, + QueryPerformanceInsightResetDataResultState, SecurityAlertPolicyName, ServerSecurityAlertPolicyState, ServerState, @@ -177,12 +182,14 @@ 'PrivateLinkResourceProperties', 'PrivateLinkServiceConnectionStateProperty', 'ProxyResource', + 'QueryPerformanceInsightResetDataResult', 'QueryStatistic', 'QueryText', 'QueryTextsResultList', 'RecommendationAction', 'RecommendationActionsResultList', 'RecommendedActionSessionsOperationStatus', + 'RecoverableServerResource', 'Resource', 'Server', 'ServerForCreate', @@ -215,6 +222,7 @@ 'PrivateLinkServiceConnectionStateActionsRequire', 'PrivateLinkServiceConnectionStateStatus', 'PublicNetworkAccessEnum', + 'QueryPerformanceInsightResetDataResultState', 'SecurityAlertPolicyName', 'ServerSecurityAlertPolicyState', 'ServerState', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_maria_db_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_maria_db_management_client_enums.py index 5be7485c9a19..c39df09b0bc1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_maria_db_management_client_enums.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_maria_db_management_client_enums.py @@ -83,6 +83,13 @@ class PublicNetworkAccessEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum ENABLED = "Enabled" DISABLED = "Disabled" +class QueryPerformanceInsightResetDataResultState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Indicates result of the operation. + """ + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + class SecurityAlertPolicyName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): DEFAULT = "Default" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models.py index 49d278f4f2c0..63b4475667cd 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models.py @@ -11,17 +11,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -52,13 +52,13 @@ class Advisor(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param properties: The properties of a recommendation action advisor. :type properties: object @@ -91,7 +91,7 @@ class AdvisorsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~maria_db_management_client.models.Advisor] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.Advisor] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -119,7 +119,7 @@ class CloudErrorAutoGenerated(msrest.serialization.Model): """An error response from the Batch service. :param error: Error message. - :type error: ~maria_db_management_client.models.ErrorResponse + :type error: ~azure.mgmt.rdbms.mariadb.models.ErrorResponse """ _attribute_map = { @@ -139,13 +139,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -200,7 +200,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~maria_db_management_client.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Configuration] """ _attribute_map = { @@ -220,13 +220,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -261,7 +261,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~maria_db_management_client.models.Database] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Database] """ _attribute_map = { @@ -307,7 +307,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -318,9 +318,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~maria_db_management_client.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mariadb.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: list[~maria_db_management_client.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.mariadb.models.ErrorAdditionalInfo] """ _validation = { @@ -358,13 +358,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -403,7 +403,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~maria_db_management_client.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mariadb.models.FirewallRule] """ _attribute_map = { @@ -423,13 +423,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -479,7 +479,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~maria_db_management_client.models.LogFile] + :type value: list[~azure.mgmt.rdbms.mariadb.models.LogFile] """ _attribute_map = { @@ -558,10 +558,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~maria_db_management_client.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mariadb.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~maria_db_management_client.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mariadb.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -635,7 +635,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~maria_db_management_client.models.Operation] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Operation] """ _attribute_map = { @@ -654,7 +654,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~maria_db_management_client.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.mariadb.models.PerformanceTierProperties] """ _attribute_map = { @@ -674,13 +674,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~maria_db_management_client.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.mariadb.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -690,6 +710,12 @@ def __init__( ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = kwargs.get('id', None) + self.max_backup_retention_days = kwargs.get('max_backup_retention_days', None) + self.min_backup_retention_days = kwargs.get('min_backup_retention_days', None) + self.max_storage_mb = kwargs.get('max_storage_mb', None) + self.min_large_storage_mb = kwargs.get('min_large_storage_mb', None) + self.max_large_storage_mb = kwargs.get('max_large_storage_mb', None) + self.min_storage_mb = kwargs.get('min_storage_mb', None) self.service_level_objectives = kwargs.get('service_level_objectives', None) @@ -747,20 +773,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~maria_db_management_client.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~maria_db_management_client.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -797,7 +823,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -845,16 +871,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: ~maria_db_management_client.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.mariadb.models.PrivateLinkResourceProperties """ _validation = { @@ -885,7 +911,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -977,17 +1003,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -1010,18 +1036,43 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class QueryPerformanceInsightResetDataResult(msrest.serialization.Model): + """Result of Query Performance Insight data reset. + + :param status: Indicates result of the operation. Possible values include: "Succeeded", + "Failed". + :type status: str or + ~azure.mgmt.rdbms.mariadb.models.QueryPerformanceInsightResetDataResultState + :param message: operation message. + :type message: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(QueryPerformanceInsightResetDataResult, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.message = kwargs.get('message', None) + + class QueryStatistic(Resource): """Represents a Query Statistic. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Database query identifier. :type query_id: str @@ -1089,13 +1140,13 @@ class QueryText(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Query identifier unique to the server. :type query_id: str @@ -1132,7 +1183,7 @@ class QueryTextsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of query texts. - :vartype value: list[~maria_db_management_client.models.QueryText] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.QueryText] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1161,13 +1212,13 @@ class RecommendationAction(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param advisor_name: Advisor name. :type advisor_name: str @@ -1228,7 +1279,7 @@ class RecommendationActionsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~maria_db_management_client.models.RecommendationAction] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.RecommendationAction] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1279,20 +1330,84 @@ def __init__( self.status = kwargs.get('status', None) +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The MariaDB version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1331,37 +1446,37 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled". - :type user_visible_state: str or ~maria_db_management_client.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.mariadb.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1371,10 +1486,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~maria_db_management_client.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.mariadb.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1433,9 +1548,9 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param properties: Required. Properties of the server. - :type properties: ~maria_db_management_client.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.mariadb.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1469,7 +1584,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~maria_db_management_client.models.Server] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Server] """ _attribute_map = { @@ -1492,8 +1607,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :ivar id: Resource Id of the private endpoint connection. :vartype id: str :ivar properties: Private endpoint connection properties. - :vartype properties: - ~maria_db_management_client.models.ServerPrivateEndpointConnectionProperties + :vartype properties: ~azure.mgmt.rdbms.mariadb.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1521,15 +1635,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~maria_db_management_client.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~maria_db_management_client.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mariadb.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~maria_db_management_client.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProvisioningState """ _validation = { @@ -1561,13 +1675,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". - :type status: str or ~maria_db_management_client.models.PrivateLinkServiceConnectionStateStatus + :type status: str or ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~maria_db_management_client.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1601,19 +1715,19 @@ class ServerPropertiesForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode """ _validation = { @@ -1650,19 +1764,19 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -1702,19 +1816,19 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -1748,19 +1862,19 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -1794,19 +1908,19 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -1845,17 +1959,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or ~maria_db_management_client.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -1911,22 +2025,22 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -1967,7 +2081,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~maria_db_management_client.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mariadb.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -2008,12 +2122,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or ~maria_db_management_client.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.mariadb.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~maria_db_management_client.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mariadb.models.StorageAutogrow """ _attribute_map = { @@ -2109,7 +2223,7 @@ class TopQueryStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of top query statistics. - :vartype value: list[~maria_db_management_client.models.QueryStatistic] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.QueryStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2138,13 +2252,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2153,7 +2267,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~maria_db_management_client.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRuleState """ _validation = { @@ -2188,7 +2302,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2217,13 +2331,13 @@ class WaitStatistic(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_time: Observation start time. :type start_time: ~datetime.datetime @@ -2323,7 +2437,7 @@ class WaitStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of wait statistics. - :vartype value: list[~maria_db_management_client.models.WaitStatistic] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.WaitStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models_py3.py index c744020bec9a..750eecbf360a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/models/_models_py3.py @@ -16,17 +16,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -57,13 +57,13 @@ class Advisor(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param properties: The properties of a recommendation action advisor. :type properties: object @@ -98,7 +98,7 @@ class AdvisorsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~maria_db_management_client.models.Advisor] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.Advisor] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -126,7 +126,7 @@ class CloudErrorAutoGenerated(msrest.serialization.Model): """An error response from the Batch service. :param error: Error message. - :type error: ~maria_db_management_client.models.ErrorResponse + :type error: ~azure.mgmt.rdbms.mariadb.models.ErrorResponse """ _attribute_map = { @@ -148,13 +148,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -212,7 +212,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~maria_db_management_client.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Configuration] """ _attribute_map = { @@ -234,13 +234,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -278,7 +278,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~maria_db_management_client.models.Database] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Database] """ _attribute_map = { @@ -326,7 +326,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -337,9 +337,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~maria_db_management_client.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mariadb.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: list[~maria_db_management_client.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.mariadb.models.ErrorAdditionalInfo] """ _validation = { @@ -377,13 +377,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -425,7 +425,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~maria_db_management_client.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mariadb.models.FirewallRule] """ _attribute_map = { @@ -447,13 +447,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -506,7 +506,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~maria_db_management_client.models.LogFile] + :type value: list[~azure.mgmt.rdbms.mariadb.models.LogFile] """ _attribute_map = { @@ -594,10 +594,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~maria_db_management_client.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mariadb.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~maria_db_management_client.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mariadb.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -671,7 +671,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~maria_db_management_client.models.Operation] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Operation] """ _attribute_map = { @@ -692,7 +692,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~maria_db_management_client.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.mariadb.models.PerformanceTierProperties] """ _attribute_map = { @@ -714,13 +714,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~maria_db_management_client.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.mariadb.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -728,11 +748,23 @@ def __init__( self, *, id: Optional[str] = None, + max_backup_retention_days: Optional[int] = None, + min_backup_retention_days: Optional[int] = None, + max_storage_mb: Optional[int] = None, + min_large_storage_mb: Optional[int] = None, + max_large_storage_mb: Optional[int] = None, + min_storage_mb: Optional[int] = None, service_level_objectives: Optional[List["PerformanceTierServiceLevelObjectives"]] = None, **kwargs ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = id + self.max_backup_retention_days = max_backup_retention_days + self.min_backup_retention_days = min_backup_retention_days + self.max_storage_mb = max_storage_mb + self.min_large_storage_mb = min_large_storage_mb + self.max_large_storage_mb = max_large_storage_mb + self.min_storage_mb = min_storage_mb self.service_level_objectives = service_level_objectives @@ -799,20 +831,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~maria_db_management_client.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~maria_db_management_client.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -852,7 +884,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -902,16 +934,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: ~maria_db_management_client.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.mariadb.models.PrivateLinkResourceProperties """ _validation = { @@ -942,7 +974,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1037,17 +1069,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -1070,18 +1102,46 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class QueryPerformanceInsightResetDataResult(msrest.serialization.Model): + """Result of Query Performance Insight data reset. + + :param status: Indicates result of the operation. Possible values include: "Succeeded", + "Failed". + :type status: str or + ~azure.mgmt.rdbms.mariadb.models.QueryPerformanceInsightResetDataResultState + :param message: operation message. + :type message: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[Union[str, "QueryPerformanceInsightResetDataResultState"]] = None, + message: Optional[str] = None, + **kwargs + ): + super(QueryPerformanceInsightResetDataResult, self).__init__(**kwargs) + self.status = status + self.message = message + + class QueryStatistic(Resource): """Represents a Query Statistic. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Database query identifier. :type query_id: str @@ -1160,13 +1220,13 @@ class QueryText(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Query identifier unique to the server. :type query_id: str @@ -1206,7 +1266,7 @@ class QueryTextsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of query texts. - :vartype value: list[~maria_db_management_client.models.QueryText] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.QueryText] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1235,13 +1295,13 @@ class RecommendationAction(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param advisor_name: Advisor name. :type advisor_name: str @@ -1311,7 +1371,7 @@ class RecommendationActionsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~maria_db_management_client.models.RecommendationAction] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.RecommendationAction] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1366,20 +1426,84 @@ def __init__( self.status = status +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The MariaDB version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1421,37 +1545,37 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled". - :type user_visible_state: str or ~maria_db_management_client.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.mariadb.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1461,10 +1585,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~maria_db_management_client.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.mariadb.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1538,9 +1662,9 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param properties: Required. Properties of the server. - :type properties: ~maria_db_management_client.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.mariadb.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1579,7 +1703,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~maria_db_management_client.models.Server] + :type value: list[~azure.mgmt.rdbms.mariadb.models.Server] """ _attribute_map = { @@ -1604,8 +1728,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :ivar id: Resource Id of the private endpoint connection. :vartype id: str :ivar properties: Private endpoint connection properties. - :vartype properties: - ~maria_db_management_client.models.ServerPrivateEndpointConnectionProperties + :vartype properties: ~azure.mgmt.rdbms.mariadb.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1633,15 +1756,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~maria_db_management_client.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~maria_db_management_client.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mariadb.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~maria_db_management_client.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointProvisioningState """ _validation = { @@ -1676,13 +1799,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". - :type status: str or ~maria_db_management_client.models.PrivateLinkServiceConnectionStateStatus + :type status: str or ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~maria_db_management_client.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.mariadb.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1719,19 +1842,19 @@ class ServerPropertiesForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode """ _validation = { @@ -1773,19 +1896,19 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -1832,19 +1955,19 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -1884,19 +2007,19 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -1936,19 +2059,19 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~maria_db_management_client.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mariadb.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -1994,17 +2117,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or ~maria_db_management_client.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -2068,22 +2191,22 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param sku: The SKU (pricing tier) of the server. - :type sku: ~maria_db_management_client.models.Sku + :type sku: ~azure.mgmt.rdbms.mariadb.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~maria_db_management_client.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mariadb.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "5.6", "5.7". - :type version: str or ~maria_db_management_client.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mariadb.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~maria_db_management_client.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mariadb.models.SslEnforcementEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or ~maria_db_management_client.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mariadb.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -2133,7 +2256,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~maria_db_management_client.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mariadb.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -2180,12 +2303,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or ~maria_db_management_client.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.mariadb.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~maria_db_management_client.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mariadb.models.StorageAutogrow """ _attribute_map = { @@ -2295,7 +2418,7 @@ class TopQueryStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of top query statistics. - :vartype value: list[~maria_db_management_client.models.QueryStatistic] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.QueryStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2324,13 +2447,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2339,7 +2462,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~maria_db_management_client.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRuleState """ _validation = { @@ -2377,7 +2500,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~maria_db_management_client.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2406,13 +2529,13 @@ class WaitStatistic(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_time: Observation start time. :type start_time: ~datetime.datetime @@ -2526,7 +2649,7 @@ class WaitStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of wait statistics. - :vartype value: list[~maria_db_management_client.models.WaitStatistic] + :vartype value: list[~azure.mgmt.rdbms.mariadb.models.WaitStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/__init__.py index 61910e206185..33ffedbabf7f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/__init__.py @@ -12,15 +12,18 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations from ._query_texts_operations import QueryTextsOperations from ._top_query_statistics_operations import TopQueryStatisticsOperations from ._wait_statistics_operations import WaitStatisticsOperations -from ._advisors_operations import AdvisorsOperations from ._maria_db_management_client_operations import MariaDBManagementClientOperationsMixin +from ._advisors_operations import AdvisorsOperations from ._recommended_actions_operations import RecommendedActionsOperations from ._location_based_recommended_action_sessions_operation_status_operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from ._location_based_recommended_action_sessions_result_operations import LocationBasedRecommendedActionSessionsResultOperations @@ -35,15 +38,18 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', 'QueryTextsOperations', 'TopQueryStatisticsOperations', 'WaitStatisticsOperations', - 'AdvisorsOperations', 'MariaDBManagementClientOperationsMixin', + 'AdvisorsOperations', 'RecommendedActionsOperations', 'LocationBasedRecommendedActionSessionsOperationStatusOperations', 'LocationBasedRecommendedActionSessionsResultOperations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_advisors_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_advisors_operations.py index 57de0b31fe67..708e89d315b0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_advisors_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_advisors_operations.py @@ -30,7 +30,7 @@ class AdvisorsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -63,7 +63,7 @@ def get( :type advisor_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Advisor, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Advisor + :rtype: ~azure.mgmt.rdbms.mariadb.models.Advisor :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Advisor"] @@ -123,7 +123,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either AdvisorsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.AdvisorsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.AdvisorsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.AdvisorsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_check_name_availability_operations.py index a29ba3dfe25c..d94451aa2332 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_check_name_availability_operations.py @@ -29,7 +29,7 @@ class CheckNameAvailabilityOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -54,10 +54,10 @@ def execute( :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~maria_db_management_client.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mariadb.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~maria_db_management_client.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mariadb.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_configurations_operations.py index 36afba0f97bc..1deec716484a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_configurations_operations.py @@ -32,7 +32,7 @@ class ConfigurationsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -123,7 +123,7 @@ def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~maria_db_management_client.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mariadb.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -131,7 +131,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.Configuration] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -200,7 +200,7 @@ def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Configuration + :rtype: ~azure.mgmt.rdbms.mariadb.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] @@ -260,7 +260,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.ConfigurationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_databases_operations.py index 7b396a0fd3c8..bf1eecad5ffc 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_databases_operations.py @@ -32,7 +32,7 @@ class DatabasesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -126,7 +126,7 @@ def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~maria_db_management_client.models.Database + :type parameters: ~azure.mgmt.rdbms.mariadb.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,7 +134,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.Database] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -320,7 +320,7 @@ def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Database + :rtype: ~azure.mgmt.rdbms.mariadb.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] @@ -380,7 +380,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.DatabaseListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_firewall_rules_operations.py index 90d49ed2487a..db9d9854f058 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_firewall_rules_operations.py @@ -32,7 +32,7 @@ class FirewallRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -126,7 +126,7 @@ def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~maria_db_management_client.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mariadb.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,7 +134,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.FirewallRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -320,7 +320,7 @@ def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~maria_db_management_client.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mariadb.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] @@ -380,7 +380,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.FirewallRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_performance_tier_operations.py index 73cb4707a2c7..d721ed5a36b9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_performance_tier_operations.py @@ -30,7 +30,7 @@ class LocationBasedPerformanceTierOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -57,7 +57,7 @@ def list( :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.PerformanceTierListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_operation_status_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_operation_status_operations.py index c0b4d2408401..e62d7533cd56 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_operation_status_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_operation_status_operations.py @@ -29,7 +29,7 @@ class LocationBasedRecommendedActionSessionsOperationStatusOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -59,7 +59,7 @@ def get( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendedActionSessionsOperationStatus, or the result of cls(response) - :rtype: ~maria_db_management_client.models.RecommendedActionSessionsOperationStatus + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecommendedActionSessionsOperationStatus :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendedActionSessionsOperationStatus"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_result_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_result_operations.py index ae506e1b5c76..343ae273be33 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_result_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_location_based_recommended_action_sessions_result_operations.py @@ -30,7 +30,7 @@ class LocationBasedRecommendedActionSessionsResultOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ def list( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.RecommendationActionsResultListor ~maria_db_management_client.models.RecommendationActionsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_log_files_operations.py index d9dc934ddb65..1d608a74e608 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_log_files_operations.py @@ -30,7 +30,7 @@ class LogFilesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.LogFileListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_maria_db_management_client_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_maria_db_management_client_operations.py index d286528c6100..7f538959c85e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_maria_db_management_client_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_maria_db_management_client_operations.py @@ -26,6 +26,65 @@ class MariaDBManagementClientOperationsMixin(object): + def reset_query_performance_insight_data( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.QueryPerformanceInsightResetDataResult" + """Reset data for Query Performance Insight. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: QueryPerformanceInsightResetDataResult, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryPerformanceInsightResetDataResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryPerformanceInsightResetDataResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.reset_query_performance_insight_data.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('QueryPerformanceInsightResetDataResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + reset_query_performance_insight_data.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/resetQueryPerformanceInsightData'} # type: ignore + def _create_recommended_action_session_initial( self, resource_group_name, # type: str diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_operations.py index ab485587205a..07746642fa6b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_operations.py @@ -29,7 +29,7 @@ class Operations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -53,7 +53,7 @@ def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~maria_db_management_client.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mariadb.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_endpoint_connections_operations.py index 238569ddb605..1541d0718c8e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_endpoint_connections_operations.py @@ -32,7 +32,7 @@ class PrivateEndpointConnectionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -65,7 +65,7 @@ def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~maria_db_management_client.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] @@ -186,7 +186,7 @@ def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~maria_db_management_client.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -194,7 +194,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -439,7 +439,7 @@ def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~maria_db_management_client.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.mariadb.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -447,7 +447,7 @@ def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -513,7 +513,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_link_resources_operations.py index 61ab097dc23b..56891f30503e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_private_link_resources_operations.py @@ -30,7 +30,7 @@ class PrivateLinkResourcesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] @@ -138,7 +138,7 @@ def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~maria_db_management_client.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.mariadb.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_query_texts_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_query_texts_operations.py index 0e010b617735..7d363e73cae3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_query_texts_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_query_texts_operations.py @@ -30,7 +30,7 @@ class QueryTextsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -63,7 +63,7 @@ def get( :type query_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryText, or the result of cls(response) - :rtype: ~maria_db_management_client.models.QueryText + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryText :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryText"] @@ -126,7 +126,7 @@ def list_by_server( :type query_ids: list[str] :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either QueryTextsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.QueryTextsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.QueryTextsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryTextsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recommended_actions_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recommended_actions_operations.py index d232795a51cf..be8c818d1042 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recommended_actions_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recommended_actions_operations.py @@ -30,7 +30,7 @@ class RecommendedActionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -66,7 +66,7 @@ def get( :type recommended_action_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendationAction, or the result of cls(response) - :rtype: ~maria_db_management_client.models.RecommendationAction + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecommendationAction :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationAction"] @@ -133,7 +133,7 @@ def list_by_server( :type session_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.RecommendationActionsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..c7dc536fcd76 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_recoverable_servers_operations.py @@ -0,0 +1,104 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations(object): + """RecoverableServersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def get( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RecoverableServerResource" + """Gets a recoverable MariaDB Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mariadb.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_replicas_operations.py index 6d15221692ee..835a4ba48fa0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_replicas_operations.py @@ -30,7 +30,7 @@ class ReplicasOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +60,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..d0adae4a1938 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,121 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations(object): + """ServerBasedPerformanceTierOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PerformanceTierListResult"] + """List all the performance tiers for a MariaDB server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..c66b89aa5595 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_parameters_operations.py @@ -0,0 +1,175 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations(object): + """ServerParametersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mariadb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _list_update_configurations_initial( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/updateConfigurations'} # type: ignore + + def begin_list_update_configurations( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ConfigurationListResult"] + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMariaDB/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_security_alert_policies_operations.py index a60fd69ff75c..e4024d9760dd 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_server_security_alert_policies_operations.py @@ -31,7 +31,7 @@ class ServerSecurityAlertPoliciesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -61,10 +61,10 @@ def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~maria_db_management_client.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mariadb.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~maria_db_management_client.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] @@ -183,9 +183,9 @@ def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~maria_db_management_client.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mariadb.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~maria_db_management_client.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -193,7 +193,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_servers_operations.py index 820246d1ac0f..ca23ee7ddff8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_servers_operations.py @@ -32,7 +32,7 @@ class ServersOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -122,7 +122,7 @@ def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~maria_db_management_client.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -130,7 +130,7 @@ def begin_create( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -251,7 +251,7 @@ def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~maria_db_management_client.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.mariadb.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -259,7 +259,7 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -433,7 +433,7 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~maria_db_management_client.models.Server + :rtype: ~azure.mgmt.rdbms.mariadb.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] @@ -489,7 +489,7 @@ def list_by_resource_group( :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] @@ -557,7 +557,7 @@ def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_top_query_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_top_query_statistics_operations.py index be29b785e75e..fc86c83c2e9f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_top_query_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_top_query_statistics_operations.py @@ -30,7 +30,7 @@ class TopQueryStatisticsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -63,7 +63,7 @@ def get( :type query_statistic_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryStatistic, or the result of cls(response) - :rtype: ~maria_db_management_client.models.QueryStatistic + :rtype: ~azure.mgmt.rdbms.mariadb.models.QueryStatistic :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryStatistic"] @@ -123,10 +123,10 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving top query statistics. - :type parameters: ~maria_db_management_client.models.TopQueryStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mariadb.models.TopQueryStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TopQueryStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.TopQueryStatisticsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.TopQueryStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.TopQueryStatisticsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_virtual_network_rules_operations.py index dad618d156cb..86c1831df57e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_virtual_network_rules_operations.py @@ -32,7 +32,7 @@ class VirtualNetworkRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -65,7 +65,7 @@ def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~maria_db_management_client.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] @@ -189,7 +189,7 @@ def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~maria_db_management_client.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -197,7 +197,7 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~maria_db_management_client.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -378,7 +378,7 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_wait_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_wait_statistics_operations.py index 08bc20619928..b831b22b214e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_wait_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mariadb/operations/_wait_statistics_operations.py @@ -30,7 +30,7 @@ class WaitStatisticsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~maria_db_management_client.models + :type models: ~azure.mgmt.rdbms.mariadb.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -63,7 +63,7 @@ def get( :type wait_statistics_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: WaitStatistic, or the result of cls(response) - :rtype: ~maria_db_management_client.models.WaitStatistic + :rtype: ~azure.mgmt.rdbms.mariadb.models.WaitStatistic :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatistic"] @@ -123,10 +123,10 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving wait statistics. - :type parameters: ~maria_db_management_client.models.WaitStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mariadb.models.WaitStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either WaitStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~maria_db_management_client.models.WaitStatisticsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mariadb.models.WaitStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatisticsResultList"] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_configuration.py index c324e1c6a278..25e6b7e14e60 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_configuration.py @@ -1,21 +1,24 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any + +from typing import TYPE_CHECKING from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -from ._version import VERSION +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential +VERSION = "unknown" class MySQLManagementClientConfiguration(Configuration): """Configuration for MySQLManagementClient. @@ -45,7 +48,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'azure-mgmt-rdbms/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py index abfa2d305350..87b183885a53 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py @@ -1,437 +1,191 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import TYPE_CHECKING + from azure.mgmt.core import ARMPipelineClient -from msrest import Serializer, Deserializer +from msrest import Deserializer, Serializer -from azure.profiles import KnownProfiles, ProfileDefinition -from azure.profiles.multiapiclient import MultiApiClientMixin -from ._configuration import MySQLManagementClientConfiguration -from ._operations_mixin import MySQLManagementClientOperationsMixin -class _SDKClient(object): - def __init__(self, *args, **kwargs): - """This is a fake class to support current implemetation of MultiApiClientMixin." - Will be removed in final version of multiapi azure-core based client - """ - pass +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional -class MySQLManagementClient(MySQLManagementClientOperationsMixin, MultiApiClientMixin, _SDKClient): - """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. + from azure.core.credentials import TokenCredential - This ready contains multiple API versions, to help you deal with all of the Azure clouds - (Azure Stack, Azure Government, Azure China, etc.). - By default, it uses the latest API version available on public Azure. - For production, you should stick to a particular api-version and/or profile. - The profile sets a mapping between an operation group and its API version. - The api-version parameter sets the default API version if the operation - group is not described in the profile. +from ._configuration import MySQLManagementClientConfiguration +from .operations import ServersOperations +from .operations import ReplicasOperations +from .operations import FirewallRulesOperations +from .operations import VirtualNetworkRulesOperations +from .operations import DatabasesOperations +from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations +from .operations import LogFilesOperations +from .operations import ServerAdministratorsOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations +from .operations import LocationBasedPerformanceTierOperations +from .operations import CheckNameAvailabilityOperations +from .operations import Operations +from .operations import ServerSecurityAlertPoliciesOperations +from .operations import QueryTextsOperations +from .operations import TopQueryStatisticsOperations +from .operations import WaitStatisticsOperations +from .operations import MySQLManagementClientOperationsMixin +from .operations import AdvisorsOperations +from .operations import RecommendedActionsOperations +from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations +from .operations import LocationBasedRecommendedActionSessionsResultOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ServerKeysOperations +from . import models + + +class MySQLManagementClient(MySQLManagementClientOperationsMixin): + """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. + :ivar servers: ServersOperations operations + :vartype servers: azure.mgmt.rdbms.mysql.operations.ServersOperations + :ivar replicas: ReplicasOperations operations + :vartype replicas: azure.mgmt.rdbms.mysql.operations.ReplicasOperations + :ivar firewall_rules: FirewallRulesOperations operations + :vartype firewall_rules: azure.mgmt.rdbms.mysql.operations.FirewallRulesOperations + :ivar virtual_network_rules: VirtualNetworkRulesOperations operations + :vartype virtual_network_rules: azure.mgmt.rdbms.mysql.operations.VirtualNetworkRulesOperations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.mysql.operations.DatabasesOperations + :ivar configurations: ConfigurationsOperations operations + :vartype configurations: azure.mgmt.rdbms.mysql.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.mysql.operations.ServerParametersOperations + :ivar log_files: LogFilesOperations operations + :vartype log_files: azure.mgmt.rdbms.mysql.operations.LogFilesOperations + :ivar server_administrators: ServerAdministratorsOperations operations + :vartype server_administrators: azure.mgmt.rdbms.mysql.operations.ServerAdministratorsOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.mysql.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.mysql.operations.ServerBasedPerformanceTierOperations + :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations + :vartype location_based_performance_tier: azure.mgmt.rdbms.mysql.operations.LocationBasedPerformanceTierOperations + :ivar check_name_availability: CheckNameAvailabilityOperations operations + :vartype check_name_availability: azure.mgmt.rdbms.mysql.operations.CheckNameAvailabilityOperations + :ivar operations: Operations operations + :vartype operations: azure.mgmt.rdbms.mysql.operations.Operations + :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations + :vartype server_security_alert_policies: azure.mgmt.rdbms.mysql.operations.ServerSecurityAlertPoliciesOperations + :ivar query_texts: QueryTextsOperations operations + :vartype query_texts: azure.mgmt.rdbms.mysql.operations.QueryTextsOperations + :ivar top_query_statistics: TopQueryStatisticsOperations operations + :vartype top_query_statistics: azure.mgmt.rdbms.mysql.operations.TopQueryStatisticsOperations + :ivar wait_statistics: WaitStatisticsOperations operations + :vartype wait_statistics: azure.mgmt.rdbms.mysql.operations.WaitStatisticsOperations + :ivar advisors: AdvisorsOperations operations + :vartype advisors: azure.mgmt.rdbms.mysql.operations.AdvisorsOperations + :ivar recommended_actions: RecommendedActionsOperations operations + :vartype recommended_actions: azure.mgmt.rdbms.mysql.operations.RecommendedActionsOperations + :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations + :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mysql.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations + :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations + :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mysql.operations.LocationBasedRecommendedActionSessionsResultOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.rdbms.mysql.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.rdbms.mysql.operations.PrivateLinkResourcesOperations + :ivar server_keys: ServerKeysOperations operations + :vartype server_keys: azure.mgmt.rdbms.mysql.operations.ServerKeysOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. :type subscription_id: str - :param str api_version: API version to use if no profile is provided, or if - missing in profile. :param str base_url: Service URL - :param profile: A profile definition, from KnownProfiles to dict. - :type profile: azure.profiles.KnownProfiles :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2020-01-01' - _PROFILE_TAG = "azure.mgmt.rdbms.MySQLManagementClient" - LATEST_PROFILE = ProfileDefinition({ - _PROFILE_TAG: { - None: DEFAULT_API_VERSION, - }}, - _PROFILE_TAG + " latest" - ) - def __init__( self, credential, # type: "TokenCredential" subscription_id, # type: str - api_version=None, - base_url=None, - profile=KnownProfiles.default, + base_url=None, # type: Optional[str] **kwargs # type: Any ): + # type: (...) -> None if not base_url: base_url = 'https://management.azure.com' self._config = MySQLManagementClientConfiguration(credential, subscription_id, **kwargs) self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - super(MySQLManagementClient, self).__init__( - api_version=api_version, - profile=profile - ) - - @classmethod - def _models_dict(cls, api_version): - return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} - - @classmethod - def models(cls, api_version=DEFAULT_API_VERSION): - """Module depends on the API version: - - * 2020-01-01: :mod:`v2020_01_01.models` - * 2020-07-01-privatepreview: :mod:`v2020_07_01_privatepreview.models` - """ - if api_version == '2020-01-01': - from .v2020_01_01 import models - return models - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview import models - return models - raise ValueError("API version {} is not available".format(api_version)) - - @property - def advisors(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`AdvisorsOperations` - """ - api_version = self._get_api_version('advisors') - if api_version == '2020-01-01': - from .v2020_01_01.operations import AdvisorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'advisors'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def check_name_availability(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`CheckNameAvailabilityOperations` - * 2020-07-01-privatepreview: :class:`CheckNameAvailabilityOperations` - """ - api_version = self._get_api_version('check_name_availability') - if api_version == '2020-01-01': - from .v2020_01_01.operations import CheckNameAvailabilityOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import CheckNameAvailabilityOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_name_availability'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def check_virtual_network_subnet_usage(self): - """Instance depends on the API version: - - * 2020-07-01-privatepreview: :class:`CheckVirtualNetworkSubnetUsageOperations` - """ - api_version = self._get_api_version('check_virtual_network_subnet_usage') - if api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import CheckVirtualNetworkSubnetUsageOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_virtual_network_subnet_usage'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def configurations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ConfigurationsOperations` - * 2020-07-01-privatepreview: :class:`ConfigurationsOperations` - """ - api_version = self._get_api_version('configurations') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ConfigurationsOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import ConfigurationsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'configurations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def databases(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`DatabasesOperations` - * 2020-07-01-privatepreview: :class:`DatabasesOperations` - """ - api_version = self._get_api_version('databases') - if api_version == '2020-01-01': - from .v2020_01_01.operations import DatabasesOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import DatabasesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'databases'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def firewall_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`FirewallRulesOperations` - * 2020-07-01-privatepreview: :class:`FirewallRulesOperations` - """ - api_version = self._get_api_version('firewall_rules') - if api_version == '2020-01-01': - from .v2020_01_01.operations import FirewallRulesOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import FirewallRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'firewall_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_capabilities(self): - """Instance depends on the API version: - - * 2020-07-01-privatepreview: :class:`LocationBasedCapabilitiesOperations` - """ - api_version = self._get_api_version('location_based_capabilities') - if api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import LocationBasedCapabilitiesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_capabilities'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_performance_tier(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedPerformanceTierOperations` - """ - api_version = self._get_api_version('location_based_performance_tier') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LocationBasedPerformanceTierOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_performance_tier'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_recommended_action_sessions_operation_status(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedRecommendedActionSessionsOperationStatusOperations` - """ - api_version = self._get_api_version('location_based_recommended_action_sessions_operation_status') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LocationBasedRecommendedActionSessionsOperationStatusOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_recommended_action_sessions_operation_status'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_recommended_action_sessions_result(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedRecommendedActionSessionsResultOperations` - """ - api_version = self._get_api_version('location_based_recommended_action_sessions_result') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LocationBasedRecommendedActionSessionsResultOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_recommended_action_sessions_result'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - @property - def log_files(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LogFilesOperations` - """ - api_version = self._get_api_version('log_files') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LogFilesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'log_files'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def operations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`Operations` - * 2020-07-01-privatepreview: :class:`Operations` - """ - api_version = self._get_api_version('operations') - if api_version == '2020-01-01': - from .v2020_01_01.operations import Operations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import Operations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_endpoint_connections(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateEndpointConnectionsOperations` - """ - api_version = self._get_api_version('private_endpoint_connections') - if api_version == '2020-01-01': - from .v2020_01_01.operations import PrivateEndpointConnectionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_link_resources(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateLinkResourcesOperations` - """ - api_version = self._get_api_version('private_link_resources') - if api_version == '2020-01-01': - from .v2020_01_01.operations import PrivateLinkResourcesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def query_texts(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`QueryTextsOperations` - """ - api_version = self._get_api_version('query_texts') - if api_version == '2020-01-01': - from .v2020_01_01.operations import QueryTextsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'query_texts'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def recommended_actions(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`RecommendedActionsOperations` - """ - api_version = self._get_api_version('recommended_actions') - if api_version == '2020-01-01': - from .v2020_01_01.operations import RecommendedActionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'recommended_actions'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def replicas(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ReplicasOperations` - * 2020-07-01-privatepreview: :class:`ReplicasOperations` - """ - api_version = self._get_api_version('replicas') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ReplicasOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import ReplicasOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'replicas'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_administrators(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerAdministratorsOperations` - """ - api_version = self._get_api_version('server_administrators') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerAdministratorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_administrators'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_keys(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerKeysOperations` - * 2020-07-01-privatepreview: :class:`ServerKeysOperations` - """ - api_version = self._get_api_version('server_keys') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerKeysOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import ServerKeysOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_keys'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_security_alert_policies(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerSecurityAlertPoliciesOperations` - """ - api_version = self._get_api_version('server_security_alert_policies') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerSecurityAlertPoliciesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_security_alert_policies'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def servers(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServersOperations` - * 2020-07-01-privatepreview: :class:`ServersOperations` - """ - api_version = self._get_api_version('servers') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServersOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from .v2020_07_01_privatepreview.operations import ServersOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'servers'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def top_query_statistics(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`TopQueryStatisticsOperations` - """ - api_version = self._get_api_version('top_query_statistics') - if api_version == '2020-01-01': - from .v2020_01_01.operations import TopQueryStatisticsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'top_query_statistics'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`VirtualNetworkRulesOperations` - """ - api_version = self._get_api_version('virtual_network_rules') - if api_version == '2020-01-01': - from .v2020_01_01.operations import VirtualNetworkRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def wait_statistics(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`WaitStatisticsOperations` - """ - api_version = self._get_api_version('wait_statistics') - if api_version == '2020-01-01': - from .v2020_01_01.operations import WaitStatisticsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'wait_statistics'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.servers = ServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.replicas = ReplicasOperations( + self._client, self._config, self._serialize, self._deserialize) + self.firewall_rules = FirewallRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.virtual_network_rules = VirtualNetworkRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configurations = ConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.log_files = LogFilesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_administrators = ServerAdministratorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_performance_tier = LocationBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.check_name_availability = CheckNameAvailabilityOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.query_texts = QueryTextsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.top_query_statistics = TopQueryStatisticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.wait_statistics = WaitStatisticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.advisors = AdvisorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recommended_actions = RecommendedActionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_recommended_action_sessions_operation_status = LocationBasedRecommendedActionSessionsOperationStatusOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_recommended_action_sessions_result = LocationBasedRecommendedActionSessionsResultOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_keys = ServerKeysOperations( + self._client, self._config, self._serialize, self._deserialize) def close(self): + # type: () -> None self._client.close() + def __enter__(self): + # type: () -> MySQLManagementClient self._client.__enter__() return self + def __exit__(self, *exc_details): + # type: (Any) -> None self._client.__exit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_operations_mixin.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_operations_mixin.py deleted file mode 100644 index dbad3a723605..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_operations_mixin.py +++ /dev/null @@ -1,68 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -from msrest import Serializer, Deserializer -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.arm_polling import ARMPolling - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union - - -class MySQLManagementClientOperationsMixin(object): - - def begin_create_recommended_action_session( - self, - resource_group_name, # type: str - server_name, # type: str - advisor_name, # type: str - database_name, # type: str - **kwargs # type: Any - ): - """Create recommendation action session for the advisor. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param server_name: The name of the server. - :type server_name: str - :param advisor_name: The advisor name for recommendation action. - :type advisor_name: str - :param database_name: The name of the database. - :type database_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of LROPoller that returns either None or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[None] - :raises ~azure.core.exceptions.HttpResponseError: - """ - api_version = self._get_api_version('begin_create_recommended_action_session') - if api_version == '2020-01-01': - from .v2020_01_01.operations import MySQLManagementClientOperationsMixin as OperationClass - else: - raise ValueError("API version {} does not have operation 'begin_create_recommended_action_session'".format(api_version)) - mixin_instance = OperationClass() - mixin_instance._client = self._client - mixin_instance._config = self._config - mixin_instance._serialize = Serializer(self._models_dict(api_version)) - mixin_instance._serialize.client_side_validation = False - mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) - return mixin_instance.begin_create_recommended_action_session(resource_group_name, server_name, advisor_name, database_name, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_version.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_version.py deleted file mode 100644 index 7cf3ebf6b364..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_version.py +++ /dev/null @@ -1,13 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -VERSION = "8.0.0b1" - diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_configuration.py index 3c1996b35a85..2064e0ed43b6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_configuration.py @@ -1,21 +1,22 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any + +from typing import Any, TYPE_CHECKING from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -from .._version import VERSION +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential +VERSION = "unknown" class MySQLManagementClientConfiguration(Configuration): """Configuration for MySQLManagementClient. @@ -31,9 +32,9 @@ class MySQLManagementClientConfiguration(Configuration): def __init__( self, - credential, # type: "AsyncTokenCredential" - subscription_id, # type: str - **kwargs # type: Any + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any ) -> None: if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -44,7 +45,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'azure-mgmt-rdbms/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_my_sql_management_client.py index 5926b546b393..fef3807df432 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_my_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_my_sql_management_client.py @@ -1,437 +1,185 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, Optional, TYPE_CHECKING + from azure.mgmt.core import AsyncARMPipelineClient -from msrest import Serializer, Deserializer +from msrest import Deserializer, Serializer -from azure.profiles import KnownProfiles, ProfileDefinition -from azure.profiles.multiapiclient import MultiApiClientMixin -from ._configuration import MySQLManagementClientConfiguration -from ._operations_mixin import MySQLManagementClientOperationsMixin -class _SDKClient(object): - def __init__(self, *args, **kwargs): - """This is a fake class to support current implemetation of MultiApiClientMixin." - Will be removed in final version of multiapi azure-core based client - """ - pass +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential -class MySQLManagementClient(MySQLManagementClientOperationsMixin, MultiApiClientMixin, _SDKClient): +from ._configuration import MySQLManagementClientConfiguration +from .operations import ServersOperations +from .operations import ReplicasOperations +from .operations import FirewallRulesOperations +from .operations import VirtualNetworkRulesOperations +from .operations import DatabasesOperations +from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations +from .operations import LogFilesOperations +from .operations import ServerAdministratorsOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations +from .operations import LocationBasedPerformanceTierOperations +from .operations import CheckNameAvailabilityOperations +from .operations import Operations +from .operations import ServerSecurityAlertPoliciesOperations +from .operations import QueryTextsOperations +from .operations import TopQueryStatisticsOperations +from .operations import WaitStatisticsOperations +from .operations import MySQLManagementClientOperationsMixin +from .operations import AdvisorsOperations +from .operations import RecommendedActionsOperations +from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations +from .operations import LocationBasedRecommendedActionSessionsResultOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ServerKeysOperations +from .. import models + + +class MySQLManagementClient(MySQLManagementClientOperationsMixin): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. - This ready contains multiple API versions, to help you deal with all of the Azure clouds - (Azure Stack, Azure Government, Azure China, etc.). - By default, it uses the latest API version available on public Azure. - For production, you should stick to a particular api-version and/or profile. - The profile sets a mapping between an operation group and its API version. - The api-version parameter sets the default API version if the operation - group is not described in the profile. - + :ivar servers: ServersOperations operations + :vartype servers: azure.mgmt.rdbms.mysql.aio.operations.ServersOperations + :ivar replicas: ReplicasOperations operations + :vartype replicas: azure.mgmt.rdbms.mysql.aio.operations.ReplicasOperations + :ivar firewall_rules: FirewallRulesOperations operations + :vartype firewall_rules: azure.mgmt.rdbms.mysql.aio.operations.FirewallRulesOperations + :ivar virtual_network_rules: VirtualNetworkRulesOperations operations + :vartype virtual_network_rules: azure.mgmt.rdbms.mysql.aio.operations.VirtualNetworkRulesOperations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.mysql.aio.operations.DatabasesOperations + :ivar configurations: ConfigurationsOperations operations + :vartype configurations: azure.mgmt.rdbms.mysql.aio.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.mysql.aio.operations.ServerParametersOperations + :ivar log_files: LogFilesOperations operations + :vartype log_files: azure.mgmt.rdbms.mysql.aio.operations.LogFilesOperations + :ivar server_administrators: ServerAdministratorsOperations operations + :vartype server_administrators: azure.mgmt.rdbms.mysql.aio.operations.ServerAdministratorsOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.mysql.aio.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.mysql.aio.operations.ServerBasedPerformanceTierOperations + :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations + :vartype location_based_performance_tier: azure.mgmt.rdbms.mysql.aio.operations.LocationBasedPerformanceTierOperations + :ivar check_name_availability: CheckNameAvailabilityOperations operations + :vartype check_name_availability: azure.mgmt.rdbms.mysql.aio.operations.CheckNameAvailabilityOperations + :ivar operations: Operations operations + :vartype operations: azure.mgmt.rdbms.mysql.aio.operations.Operations + :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations + :vartype server_security_alert_policies: azure.mgmt.rdbms.mysql.aio.operations.ServerSecurityAlertPoliciesOperations + :ivar query_texts: QueryTextsOperations operations + :vartype query_texts: azure.mgmt.rdbms.mysql.aio.operations.QueryTextsOperations + :ivar top_query_statistics: TopQueryStatisticsOperations operations + :vartype top_query_statistics: azure.mgmt.rdbms.mysql.aio.operations.TopQueryStatisticsOperations + :ivar wait_statistics: WaitStatisticsOperations operations + :vartype wait_statistics: azure.mgmt.rdbms.mysql.aio.operations.WaitStatisticsOperations + :ivar advisors: AdvisorsOperations operations + :vartype advisors: azure.mgmt.rdbms.mysql.aio.operations.AdvisorsOperations + :ivar recommended_actions: RecommendedActionsOperations operations + :vartype recommended_actions: azure.mgmt.rdbms.mysql.aio.operations.RecommendedActionsOperations + :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations + :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mysql.aio.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations + :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations + :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mysql.aio.operations.LocationBasedRecommendedActionSessionsResultOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.rdbms.mysql.aio.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.rdbms.mysql.aio.operations.PrivateLinkResourcesOperations + :ivar server_keys: ServerKeysOperations operations + :vartype server_keys: azure.mgmt.rdbms.mysql.aio.operations.ServerKeysOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. :type subscription_id: str - :param str api_version: API version to use if no profile is provided, or if - missing in profile. :param str base_url: Service URL - :param profile: A profile definition, from KnownProfiles to dict. - :type profile: azure.profiles.KnownProfiles :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2020-01-01' - _PROFILE_TAG = "azure.mgmt.rdbms.MySQLManagementClient" - LATEST_PROFILE = ProfileDefinition({ - _PROFILE_TAG: { - None: DEFAULT_API_VERSION, - }}, - _PROFILE_TAG + " latest" - ) - def __init__( self, - credential, # type: "AsyncTokenCredential" - subscription_id, # type: str - api_version=None, - base_url=None, - profile=KnownProfiles.default, - **kwargs # type: Any + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any ) -> None: if not base_url: base_url = 'https://management.azure.com' self._config = MySQLManagementClientConfiguration(credential, subscription_id, **kwargs) self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - super(MySQLManagementClient, self).__init__( - api_version=api_version, - profile=profile - ) - - @classmethod - def _models_dict(cls, api_version): - return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} - - @classmethod - def models(cls, api_version=DEFAULT_API_VERSION): - """Module depends on the API version: - - * 2020-01-01: :mod:`v2020_01_01.models` - * 2020-07-01-privatepreview: :mod:`v2020_07_01_privatepreview.models` - """ - if api_version == '2020-01-01': - from ..v2020_01_01 import models - return models - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview import models - return models - raise ValueError("API version {} is not available".format(api_version)) - - @property - def advisors(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`AdvisorsOperations` - """ - api_version = self._get_api_version('advisors') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import AdvisorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'advisors'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def check_name_availability(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`CheckNameAvailabilityOperations` - * 2020-07-01-privatepreview: :class:`CheckNameAvailabilityOperations` - """ - api_version = self._get_api_version('check_name_availability') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import CheckNameAvailabilityOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import CheckNameAvailabilityOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_name_availability'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def check_virtual_network_subnet_usage(self): - """Instance depends on the API version: - - * 2020-07-01-privatepreview: :class:`CheckVirtualNetworkSubnetUsageOperations` - """ - api_version = self._get_api_version('check_virtual_network_subnet_usage') - if api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import CheckVirtualNetworkSubnetUsageOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_virtual_network_subnet_usage'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def configurations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ConfigurationsOperations` - * 2020-07-01-privatepreview: :class:`ConfigurationsOperations` - """ - api_version = self._get_api_version('configurations') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ConfigurationsOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import ConfigurationsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'configurations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def databases(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`DatabasesOperations` - * 2020-07-01-privatepreview: :class:`DatabasesOperations` - """ - api_version = self._get_api_version('databases') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import DatabasesOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import DatabasesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'databases'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def firewall_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`FirewallRulesOperations` - * 2020-07-01-privatepreview: :class:`FirewallRulesOperations` - """ - api_version = self._get_api_version('firewall_rules') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import FirewallRulesOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import FirewallRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'firewall_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_capabilities(self): - """Instance depends on the API version: - - * 2020-07-01-privatepreview: :class:`LocationBasedCapabilitiesOperations` - """ - api_version = self._get_api_version('location_based_capabilities') - if api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import LocationBasedCapabilitiesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_capabilities'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_performance_tier(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedPerformanceTierOperations` - """ - api_version = self._get_api_version('location_based_performance_tier') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LocationBasedPerformanceTierOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_performance_tier'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_recommended_action_sessions_operation_status(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedRecommendedActionSessionsOperationStatusOperations` - """ - api_version = self._get_api_version('location_based_recommended_action_sessions_operation_status') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LocationBasedRecommendedActionSessionsOperationStatusOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_recommended_action_sessions_operation_status'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_recommended_action_sessions_result(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedRecommendedActionSessionsResultOperations` - """ - api_version = self._get_api_version('location_based_recommended_action_sessions_result') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LocationBasedRecommendedActionSessionsResultOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_recommended_action_sessions_result'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def log_files(self): - """Instance depends on the API version: - * 2020-01-01: :class:`LogFilesOperations` - """ - api_version = self._get_api_version('log_files') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LogFilesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'log_files'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def operations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`Operations` - * 2020-07-01-privatepreview: :class:`Operations` - """ - api_version = self._get_api_version('operations') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import Operations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import Operations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_endpoint_connections(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateEndpointConnectionsOperations` - """ - api_version = self._get_api_version('private_endpoint_connections') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_link_resources(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateLinkResourcesOperations` - """ - api_version = self._get_api_version('private_link_resources') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import PrivateLinkResourcesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def query_texts(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`QueryTextsOperations` - """ - api_version = self._get_api_version('query_texts') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import QueryTextsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'query_texts'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def recommended_actions(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`RecommendedActionsOperations` - """ - api_version = self._get_api_version('recommended_actions') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import RecommendedActionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'recommended_actions'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def replicas(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ReplicasOperations` - * 2020-07-01-privatepreview: :class:`ReplicasOperations` - """ - api_version = self._get_api_version('replicas') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ReplicasOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import ReplicasOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'replicas'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_administrators(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerAdministratorsOperations` - """ - api_version = self._get_api_version('server_administrators') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerAdministratorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_administrators'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_keys(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerKeysOperations` - * 2020-07-01-privatepreview: :class:`ServerKeysOperations` - """ - api_version = self._get_api_version('server_keys') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerKeysOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import ServerKeysOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_keys'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_security_alert_policies(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerSecurityAlertPoliciesOperations` - """ - api_version = self._get_api_version('server_security_alert_policies') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerSecurityAlertPoliciesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_security_alert_policies'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def servers(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServersOperations` - * 2020-07-01-privatepreview: :class:`ServersOperations` - """ - api_version = self._get_api_version('servers') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServersOperations as OperationClass - elif api_version == '2020-07-01-privatepreview': - from ..v2020_07_01_privatepreview.aio.operations import ServersOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'servers'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def top_query_statistics(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`TopQueryStatisticsOperations` - """ - api_version = self._get_api_version('top_query_statistics') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import TopQueryStatisticsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'top_query_statistics'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`VirtualNetworkRulesOperations` - """ - api_version = self._get_api_version('virtual_network_rules') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import VirtualNetworkRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def wait_statistics(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`WaitStatisticsOperations` - """ - api_version = self._get_api_version('wait_statistics') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import WaitStatisticsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'wait_statistics'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - async def close(self): + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.servers = ServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.replicas = ReplicasOperations( + self._client, self._config, self._serialize, self._deserialize) + self.firewall_rules = FirewallRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.virtual_network_rules = VirtualNetworkRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configurations = ConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.log_files = LogFilesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_administrators = ServerAdministratorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_performance_tier = LocationBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.check_name_availability = CheckNameAvailabilityOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.query_texts = QueryTextsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.top_query_statistics = TopQueryStatisticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.wait_statistics = WaitStatisticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.advisors = AdvisorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recommended_actions = RecommendedActionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_recommended_action_sessions_operation_status = LocationBasedRecommendedActionSessionsOperationStatusOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_recommended_action_sessions_result = LocationBasedRecommendedActionSessionsResultOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_keys = ServerKeysOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: await self._client.close() - async def __aenter__(self): + + async def __aenter__(self) -> "MySQLManagementClient": await self._client.__aenter__() return self - async def __aexit__(self, *exc_details): + + async def __aexit__(self, *exc_details) -> None: await self._client.__aexit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_operations_mixin.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_operations_mixin.py deleted file mode 100644 index 24b42fe2dd02..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/_operations_mixin.py +++ /dev/null @@ -1,64 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -from msrest import Serializer, Deserializer -from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest -from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling - - -class MySQLManagementClientOperationsMixin(object): - - async def begin_create_recommended_action_session( - self, - resource_group_name: str, - server_name: str, - advisor_name: str, - database_name: str, - **kwargs - ) -> AsyncLROPoller[None]: - """Create recommendation action session for the advisor. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param server_name: The name of the server. - :type server_name: str - :param advisor_name: The advisor name for recommendation action. - :type advisor_name: str - :param database_name: The name of the database. - :type database_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[None] - :raises ~azure.core.exceptions.HttpResponseError: - """ - api_version = self._get_api_version('begin_create_recommended_action_session') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import MySQLManagementClientOperationsMixin as OperationClass - else: - raise ValueError("API version {} does not have operation 'begin_create_recommended_action_session'".format(api_version)) - mixin_instance = OperationClass() - mixin_instance._client = self._client - mixin_instance._config = self._config - mixin_instance._serialize = Serializer(self._models_dict(api_version)) - mixin_instance._serialize.client_side_validation = False - mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) - return await mixin_instance.begin_create_recommended_action_session(resource_group_name, server_name, advisor_name, database_name, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/__init__.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/__init__.py index ddb06e36b730..5c44d71d2baa 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/__init__.py @@ -12,8 +12,11 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations from ._server_administrators_operations import ServerAdministratorsOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations @@ -21,8 +24,8 @@ from ._query_texts_operations import QueryTextsOperations from ._top_query_statistics_operations import TopQueryStatisticsOperations from ._wait_statistics_operations import WaitStatisticsOperations -from ._advisors_operations import AdvisorsOperations from ._my_sql_management_client_operations import MySQLManagementClientOperationsMixin +from ._advisors_operations import AdvisorsOperations from ._recommended_actions_operations import RecommendedActionsOperations from ._location_based_recommended_action_sessions_operation_status_operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from ._location_based_recommended_action_sessions_result_operations import LocationBasedRecommendedActionSessionsResultOperations @@ -37,8 +40,11 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', 'ServerAdministratorsOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', @@ -46,8 +52,8 @@ 'QueryTextsOperations', 'TopQueryStatisticsOperations', 'WaitStatisticsOperations', - 'AdvisorsOperations', 'MySQLManagementClientOperationsMixin', + 'AdvisorsOperations', 'RecommendedActionsOperations', 'LocationBasedRecommendedActionSessionsOperationStatusOperations', 'LocationBasedRecommendedActionSessionsResultOperations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_advisors_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_advisors_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_advisors_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_advisors_operations.py index 400c61ca3008..6e16186630d2 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_advisors_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_advisors_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class AdvisorsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,7 +47,7 @@ async def get( server_name: str, advisor_name: str, **kwargs - ) -> "models.Advisor": + ) -> "_models.Advisor": """Get a recommendation action advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -58,10 +58,10 @@ async def get( :type advisor_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Advisor, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Advisor + :rtype: ~azure.mgmt.rdbms.mysql.models.Advisor :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Advisor"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Advisor"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,7 +108,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.AdvisorsResultList"]: + ) -> AsyncIterable["_models.AdvisorsResultList"]: """List recommendation action advisors. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,10 +117,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either AdvisorsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.AdvisorsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.AdvisorsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.AdvisorsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AdvisorsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_check_name_availability_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_check_name_availability_operations.py index 7d5f6e013b1e..808b5faf697b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class CheckNameAvailabilityOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -42,20 +42,20 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, - name_availability_request: "models.NameAvailabilityRequest", + name_availability_request: "_models.NameAvailabilityRequest", **kwargs - ) -> "models.NameAvailability": + ) -> "_models.NameAvailability": """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mysql.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mysql.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_configurations_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_configurations_operations.py index 3aa34ae9d54e..69eabde5b25c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ConfigurationsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> Optional["models.Configuration"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + ) -> Optional["_models.Configuration"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,9 +105,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> AsyncLROPoller["models.Configuration"]: + ) -> AsyncLROPoller["_models.Configuration"]: """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,7 +117,7 @@ async def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mysql.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -125,11 +125,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -182,7 +182,7 @@ async def get( server_name: str, configuration_name: str, **kwargs - ) -> "models.Configuration": + ) -> "_models.Configuration": """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -193,10 +193,10 @@ async def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration + :rtype: ~azure.mgmt.rdbms.mysql.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -243,7 +243,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ConfigurationListResult"]: + ) -> AsyncIterable["_models.ConfigurationListResult"]: """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -252,10 +252,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ConfigurationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_databases_operations.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_databases_operations.py index 3e92f8a8385f..c65b9cc4af76 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class DatabasesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> Optional["models.Database"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + ) -> Optional["_models.Database"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> AsyncLROPoller["models.Database"]: + ) -> AsyncLROPoller["_models.Database"]: """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database + :type parameters: ~azure.mgmt.rdbms.mysql.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -298,7 +298,7 @@ async def get( server_name: str, database_name: str, **kwargs - ) -> "models.Database": + ) -> "_models.Database": """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -309,10 +309,10 @@ async def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database + :rtype: ~azure.mgmt.rdbms.mysql.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.DatabaseListResult"]: + ) -> AsyncIterable["_models.DatabaseListResult"]: """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.DatabaseListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_firewall_rules_operations.py index ede8bb53ebc0..3aafc737507e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class FirewallRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> Optional["models.FirewallRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + ) -> Optional["_models.FirewallRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> AsyncLROPoller["models.FirewallRule"]: + ) -> AsyncLROPoller["_models.FirewallRule"]: """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mysql.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -298,7 +298,7 @@ async def get( server_name: str, firewall_rule_name: str, **kwargs - ) -> "models.FirewallRule": + ) -> "_models.FirewallRule": """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -309,10 +309,10 @@ async def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mysql.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.FirewallRuleListResult"]: + ) -> AsyncIterable["_models.FirewallRuleListResult"]: """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_performance_tier_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_performance_tier_operations.py index c826c6b4a631..197f853228f9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_performance_tier_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LocationBasedPerformanceTierOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -45,17 +45,17 @@ def list( self, location_name: str, **kwargs - ) -> AsyncIterable["models.PerformanceTierListResult"]: + ) -> AsyncIterable["_models.PerformanceTierListResult"]: """List all the performance tiers at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PerformanceTierListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py index 8c285d9ef1a9..8b99bdc16714 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_operation_status_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class LocationBasedRecommendedActionSessionsOperationStatusOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -45,7 +45,7 @@ async def get( location_name: str, operation_id: str, **kwargs - ) -> "models.RecommendedActionSessionsOperationStatus": + ) -> "_models.RecommendedActionSessionsOperationStatus": """Recommendation action session operation status. :param location_name: The name of the location. @@ -54,10 +54,10 @@ async def get( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendedActionSessionsOperationStatus, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendedActionSessionsOperationStatus + :rtype: ~azure.mgmt.rdbms.mysql.models.RecommendedActionSessionsOperationStatus :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendedActionSessionsOperationStatus"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendedActionSessionsOperationStatus"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_result_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_result_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_result_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_result_operations.py index eacaee70b7b9..b1ce96e6b3ee 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_location_based_recommended_action_sessions_result_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_location_based_recommended_action_sessions_result_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LocationBasedRecommendedActionSessionsResultOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list( location_name: str, operation_id: str, **kwargs - ) -> AsyncIterable["models.RecommendationActionsResultList"]: + ) -> AsyncIterable["_models.RecommendationActionsResultList"]: """Recommendation action session operation result. :param location_name: The name of the location. @@ -55,10 +55,10 @@ def list( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationActionsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_log_files_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_log_files_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_log_files_operations.py index ee5c1895be6c..71b28bc7d2a8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_log_files_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LogFilesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.LogFileListResult"]: + ) -> AsyncIterable["_models.LogFileListResult"]: """List all the log files in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.LogFileListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LogFileListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_my_sql_management_client_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_my_sql_management_client_operations.py similarity index 70% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_my_sql_management_client_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_my_sql_management_client_operations.py index fb521ab5efa5..d74e6820eede 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_my_sql_management_client_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_my_sql_management_client_operations.py @@ -15,13 +15,71 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class MySQLManagementClientOperationsMixin: + async def reset_query_performance_insight_data( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> "_models.QueryPerformanceInsightResetDataResult": + """Reset data for Query Performance Insight. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: QueryPerformanceInsightResetDataResult, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryPerformanceInsightResetDataResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryPerformanceInsightResetDataResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.reset_query_performance_insight_data.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('QueryPerformanceInsightResetDataResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + reset_query_performance_insight_data.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/resetQueryPerformanceInsightData'} # type: ignore + async def _create_recommended_action_session_initial( self, resource_group_name: str, diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_operations.py index 3e7db99a144a..871660e4ff80 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class Operations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,15 +43,15 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, **kwargs - ) -> "models.OperationListResult": + ) -> "_models.OperationListResult": """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mysql.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_endpoint_connections_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_endpoint_connections_operations.py index ebad315c951f..282c909134b0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_endpoint_connections_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class PrivateEndpointConnectionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -49,7 +49,7 @@ async def get( server_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": + ) -> "_models.PrivateEndpointConnection": """Gets a private endpoint connection. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ async def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.PrivateEndpointConnection", + parameters: "_models.PrivateEndpointConnection", **kwargs - ) -> Optional["models.PrivateEndpointConnection"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] + ) -> Optional["_models.PrivateEndpointConnection"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PrivateEndpointConnection"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -167,9 +167,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.PrivateEndpointConnection", + parameters: "_models.PrivateEndpointConnection", **kwargs - ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: + ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Approve or reject a private endpoint connection with a given name. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -179,7 +179,7 @@ async def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -187,11 +187,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -358,10 +358,10 @@ async def _update_tags_initial( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.TagsObject", + parameters: "_models.TagsObject", **kwargs - ) -> "models.PrivateEndpointConnection": - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + ) -> "_models.PrivateEndpointConnection": + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -413,9 +413,9 @@ async def begin_update_tags( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.TagsObject", + parameters: "_models.TagsObject", **kwargs - ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: + ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Updates tags on private endpoint connection. Updates private endpoint connection with the specified tags. @@ -428,7 +428,7 @@ async def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.mysql.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -436,11 +436,11 @@ async def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -492,7 +492,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.PrivateEndpointConnectionListResult"]: + ) -> AsyncIterable["_models.PrivateEndpointConnectionListResult"]: """Gets all private endpoint connections on a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -501,10 +501,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnectionListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_link_resources_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_link_resources_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_link_resources_operations.py index 61276b5b1115..aed44da2b537 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_private_link_resources_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class PrivateLinkResourcesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.PrivateLinkResourceListResult"]: + ) -> AsyncIterable["_models.PrivateLinkResourceListResult"]: """Gets the private link resources for MySQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -121,7 +121,7 @@ async def get( server_name: str, group_name: str, **kwargs - ) -> "models.PrivateLinkResource": + ) -> "_models.PrivateLinkResource": """Gets a private link resource for MySQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -132,10 +132,10 @@ async def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.mysql.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_query_texts_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_query_texts_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_query_texts_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_query_texts_operations.py index 2a91d12028a5..2abd23d985d3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_query_texts_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_query_texts_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class QueryTextsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,7 +47,7 @@ async def get( server_name: str, query_id: str, **kwargs - ) -> "models.QueryText": + ) -> "_models.QueryText": """Retrieve the Query-Store query texts for the queryId. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -58,10 +58,10 @@ async def get( :type query_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryText, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryText + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryText :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryText"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryText"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -109,7 +109,7 @@ def list_by_server( server_name: str, query_ids: List[str], **kwargs - ) -> AsyncIterable["models.QueryTextsResultList"]: + ) -> AsyncIterable["_models.QueryTextsResultList"]: """Retrieve the Query-Store query texts for specified queryIds. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,10 +120,10 @@ def list_by_server( :type query_ids: list[str] :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either QueryTextsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryTextsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.QueryTextsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryTextsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryTextsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_recommended_actions_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recommended_actions_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_recommended_actions_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recommended_actions_operations.py index 20b33ffd3158..6e916d628ae8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_recommended_actions_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recommended_actions_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class RecommendedActionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ async def get( advisor_name: str, recommended_action_name: str, **kwargs - ) -> "models.RecommendationAction": + ) -> "_models.RecommendationAction": """Retrieve recommended actions from the advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -61,10 +61,10 @@ async def get( :type recommended_action_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendationAction, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationAction + :rtype: ~azure.mgmt.rdbms.mysql.models.RecommendationAction :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationAction"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationAction"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -114,7 +114,7 @@ def list_by_server( advisor_name: str, session_id: Optional[str] = None, **kwargs - ) -> AsyncIterable["models.RecommendationActionsResultList"]: + ) -> AsyncIterable["_models.RecommendationActionsResultList"]: """Retrieve recommended actions from the advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -127,10 +127,10 @@ def list_by_server( :type session_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationActionsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..dd514a4f8daa --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_recoverable_servers_operations.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations: + """RecoverableServersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def get( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> "_models.RecoverableServerResource": + """Gets a recoverable MySQL Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mysql.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_replicas_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_replicas_operations.py index f46255e9f9e1..a09e02cbc1a8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class ReplicasOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_administrators_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_administrators_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_administrators_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_administrators_operations.py index 2b735c2f8590..a203fb25dd6b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_administrators_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_administrators_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServerAdministratorsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.ServerAdministratorResource": + ) -> "_models.ServerAdministratorResource": """Gets information about a AAD server administrator. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -57,10 +57,10 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerAdministratorResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,10 +105,10 @@ async def _create_or_update_initial( self, resource_group_name: str, server_name: str, - properties: "models.ServerAdministratorResource", + properties: "_models.ServerAdministratorResource", **kwargs - ) -> "models.ServerAdministratorResource": - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + ) -> "_models.ServerAdministratorResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -162,9 +162,9 @@ async def begin_create_or_update( self, resource_group_name: str, server_name: str, - properties: "models.ServerAdministratorResource", + properties: "_models.ServerAdministratorResource", **kwargs - ) -> AsyncLROPoller["models.ServerAdministratorResource"]: + ) -> AsyncLROPoller["_models.ServerAdministratorResource"]: """Creates or update active directory administrator on an existing server. The update action will overwrite the existing administrator. @@ -174,7 +174,7 @@ async def begin_create_or_update( :type server_name: str :param properties: The required parameters for creating or updating an AAD server administrator. - :type properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource + :type properties: ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -182,11 +182,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerAdministratorResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -344,7 +344,7 @@ def list( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerAdministratorResourceListResult"]: + ) -> AsyncIterable["_models.ServerAdministratorResourceListResult"]: """Returns a list of server Administrators. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -353,10 +353,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerAdministratorResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..984bc0c7f960 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,116 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations: + """ServerBasedPerformanceTierOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> AsyncIterable["_models.PerformanceTierListResult"]: + """List all the performance tiers for a MySQL server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_keys_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_keys_operations.py index 3fdbee80a425..e0bb4a68aa21 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServerKeysOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ def list( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerKeyListResult"]: + ) -> AsyncIterable["_models.ServerKeyListResult"]: """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -57,10 +57,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKeyListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -123,7 +123,7 @@ async def get( server_name: str, key_name: str, **kwargs - ) -> "models.ServerKey": + ) -> "_models.ServerKey": """Gets a MySQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -134,10 +134,10 @@ async def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -184,10 +184,10 @@ async def _create_or_update_initial( server_name: str, key_name: str, resource_group_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> "models.ServerKey": - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + ) -> "_models.ServerKey": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -243,9 +243,9 @@ async def begin_create_or_update( server_name: str, key_name: str, resource_group_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> AsyncLROPoller["models.ServerKey"]: + ) -> AsyncLROPoller["_models.ServerKey"]: """Creates or updates a MySQL Server key. :param server_name: The name of the server. @@ -255,7 +255,7 @@ async def begin_create_or_update( :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :param parameters: The requested MySQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -263,11 +263,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..fe25a9939fe1 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_parameters_operations.py @@ -0,0 +1,169 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations: + """ServerParametersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _list_update_configurations_initial( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> Optional["_models.ConfigurationListResult"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/updateConfigurations'} # type: ignore + + async def begin_list_update_configurations( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> AsyncLROPoller["_models.ConfigurationListResult"]: + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.mysql.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_security_alert_policies_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_security_alert_policies_operations.py index e849ef10cf77..a8a15c37bafa 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_server_security_alert_policies_operations.py @@ -15,7 +15,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -27,14 +27,14 @@ class ServerSecurityAlertPoliciesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,9 +46,9 @@ async def get( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], **kwargs - ) -> "models.ServerSecurityAlertPolicy": + ) -> "_models.ServerSecurityAlertPolicy": """Get a server's security alert policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -56,13 +56,13 @@ async def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,11 +108,11 @@ async def _create_or_update_initial( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], - parameters: "models.ServerSecurityAlertPolicy", + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], + parameters: "_models.ServerSecurityAlertPolicy", **kwargs - ) -> Optional["models.ServerSecurityAlertPolicy"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerSecurityAlertPolicy"]] + ) -> Optional["_models.ServerSecurityAlertPolicy"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerSecurityAlertPolicy"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -165,10 +165,10 @@ async def begin_create_or_update( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], - parameters: "models.ServerSecurityAlertPolicy", + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], + parameters: "_models.ServerSecurityAlertPolicy", **kwargs - ) -> AsyncLROPoller["models.ServerSecurityAlertPolicy"]: + ) -> AsyncLROPoller["_models.ServerSecurityAlertPolicy"]: """Creates or updates a threat detection policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -176,9 +176,9 @@ async def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -186,11 +186,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_servers_operations.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_servers_operations.py index 1792026988e0..ffefab191f49 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServersOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,10 +47,10 @@ async def _create_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForCreate", + parameters: "_models.ServerForCreate", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,9 +105,9 @@ async def begin_create( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForCreate", + parameters: "_models.ServerForCreate", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Creates a new server or updates an existing server. The update action will overwrite the existing server. @@ -116,7 +116,7 @@ async def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -124,11 +124,11 @@ async def begin_create( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -177,10 +177,10 @@ async def _update_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpdateParameters", + parameters: "_models.ServerUpdateParameters", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -232,9 +232,9 @@ async def begin_update( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpdateParameters", + parameters: "_models.ServerUpdateParameters", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -243,7 +243,7 @@ async def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -251,11 +251,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -411,7 +411,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.Server": + ) -> "_models.Server": """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -420,10 +420,10 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server + :rtype: ~azure.mgmt.rdbms.mysql.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -468,17 +468,17 @@ def list_by_resource_group( self, resource_group_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -537,15 +537,15 @@ async def get_next(next_link=None): def list( self, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -745,7 +745,7 @@ async def _start_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -854,7 +854,7 @@ async def _stop_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -930,7 +930,7 @@ async def _upgrade_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpgradeParameters", + parameters: "_models.ServerUpgradeParameters", **kwargs ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] @@ -969,7 +969,7 @@ async def _upgrade_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -981,7 +981,7 @@ async def begin_upgrade( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpgradeParameters", + parameters: "_models.ServerUpgradeParameters", **kwargs ) -> AsyncLROPoller[None]: """Upgrade server version. @@ -991,7 +991,7 @@ async def begin_upgrade( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerUpgradeParameters + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerUpgradeParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_top_query_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_top_query_statistics_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_top_query_statistics_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_top_query_statistics_operations.py index 109537338483..93d66a0818de 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_top_query_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_top_query_statistics_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class TopQueryStatisticsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,7 +47,7 @@ async def get( server_name: str, query_statistic_id: str, **kwargs - ) -> "models.QueryStatistic": + ) -> "_models.QueryStatistic": """Retrieve the query statistic for specified identifier. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -58,10 +58,10 @@ async def get( :type query_statistic_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryStatistic, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryStatistic + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryStatistic :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryStatistic"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryStatistic"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -107,9 +107,9 @@ def list_by_server( self, resource_group_name: str, server_name: str, - parameters: "models.TopQueryStatisticsInput", + parameters: "_models.TopQueryStatisticsInput", **kwargs - ) -> AsyncIterable["models.TopQueryStatisticsResultList"]: + ) -> AsyncIterable["_models.TopQueryStatisticsResultList"]: """Retrieve the Query-Store top queries for specified metric and aggregation. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,13 +117,13 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving top query statistics. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.TopQueryStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mysql.models.TopQueryStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TopQueryStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.TopQueryStatisticsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.TopQueryStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.TopQueryStatisticsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopQueryStatisticsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_virtual_network_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_virtual_network_rules_operations.py index a9455a9f5ecf..90707a01ef9b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_virtual_network_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class VirtualNetworkRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -49,7 +49,7 @@ async def get( server_name: str, virtual_network_rule_name: str, **kwargs - ) -> "models.VirtualNetworkRule": + ) -> "_models.VirtualNetworkRule": """Gets a virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ async def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, virtual_network_rule_name: str, - parameters: "models.VirtualNetworkRule", + parameters: "_models.VirtualNetworkRule", **kwargs - ) -> Optional["models.VirtualNetworkRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.VirtualNetworkRule"]] + ) -> Optional["_models.VirtualNetworkRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.VirtualNetworkRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -170,9 +170,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, virtual_network_rule_name: str, - parameters: "models.VirtualNetworkRule", + parameters: "_models.VirtualNetworkRule", **kwargs - ) -> AsyncLROPoller["models.VirtualNetworkRule"]: + ) -> AsyncLROPoller["_models.VirtualNetworkRule"]: """Creates or updates an existing virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -182,7 +182,7 @@ async def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -190,11 +190,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.VirtualNetworkRuleListResult"]: + ) -> AsyncIterable["_models.VirtualNetworkRuleListResult"]: """Gets a list of virtual network rules in a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_wait_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_wait_statistics_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_wait_statistics_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_wait_statistics_operations.py index 2d66a65a85d2..fe79b3ccd249 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/_wait_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/aio/operations/_wait_statistics_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class WaitStatisticsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,7 +47,7 @@ async def get( server_name: str, wait_statistics_id: str, **kwargs - ) -> "models.WaitStatistic": + ) -> "_models.WaitStatistic": """Retrieve wait statistics for specified identifier. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -58,10 +58,10 @@ async def get( :type wait_statistics_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: WaitStatistic, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatistic + :rtype: ~azure.mgmt.rdbms.mysql.models.WaitStatistic :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.WaitStatistic"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatistic"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -107,9 +107,9 @@ def list_by_server( self, resource_group_name: str, server_name: str, - parameters: "models.WaitStatisticsInput", + parameters: "_models.WaitStatisticsInput", **kwargs - ) -> AsyncIterable["models.WaitStatisticsResultList"]: + ) -> AsyncIterable["_models.WaitStatisticsResultList"]: """Retrieve wait statistics for specified aggregation window. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,13 +117,13 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving wait statistics. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mysql.models.WaitStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either WaitStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatisticsResultList] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.models.WaitStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.WaitStatisticsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatisticsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models.py deleted file mode 100644 index db21579cbfbc..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models.py +++ /dev/null @@ -1,7 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -------------------------------------------------------------------------- -from .v2020_01_01.models import * diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py index 30d9b1451351..9a15c5f5e4b4 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py @@ -36,12 +36,14 @@ from ._models_py3 import PrivateLinkResourceProperties from ._models_py3 import PrivateLinkServiceConnectionStateProperty from ._models_py3 import ProxyResource + from ._models_py3 import QueryPerformanceInsightResetDataResult from ._models_py3 import QueryStatistic from ._models_py3 import QueryText from ._models_py3 import QueryTextsResultList from ._models_py3 import RecommendationAction from ._models_py3 import RecommendationActionsResultList from ._models_py3 import RecommendedActionSessionsOperationStatus + from ._models_py3 import RecoverableServerResource from ._models_py3 import Resource from ._models_py3 import ResourceIdentity from ._models_py3 import Server @@ -103,12 +105,14 @@ from ._models import PrivateLinkResourceProperties # type: ignore from ._models import PrivateLinkServiceConnectionStateProperty # type: ignore from ._models import ProxyResource # type: ignore + from ._models import QueryPerformanceInsightResetDataResult # type: ignore from ._models import QueryStatistic # type: ignore from ._models import QueryText # type: ignore from ._models import QueryTextsResultList # type: ignore from ._models import RecommendationAction # type: ignore from ._models import RecommendationActionsResultList # type: ignore from ._models import RecommendedActionSessionsOperationStatus # type: ignore + from ._models import RecoverableServerResource # type: ignore from ._models import Resource # type: ignore from ._models import ResourceIdentity # type: ignore from ._models import Server # type: ignore @@ -152,6 +156,7 @@ PrivateLinkServiceConnectionStateActionsRequire, PrivateLinkServiceConnectionStateStatus, PublicNetworkAccessEnum, + QueryPerformanceInsightResetDataResultState, SecurityAlertPolicyName, ServerKeyType, ServerSecurityAlertPolicyState, @@ -193,12 +198,14 @@ 'PrivateLinkResourceProperties', 'PrivateLinkServiceConnectionStateProperty', 'ProxyResource', + 'QueryPerformanceInsightResetDataResult', 'QueryStatistic', 'QueryText', 'QueryTextsResultList', 'RecommendationAction', 'RecommendationActionsResultList', 'RecommendedActionSessionsOperationStatus', + 'RecoverableServerResource', 'Resource', 'ResourceIdentity', 'Server', @@ -240,6 +247,7 @@ 'PrivateLinkServiceConnectionStateActionsRequire', 'PrivateLinkServiceConnectionStateStatus', 'PublicNetworkAccessEnum', + 'QueryPerformanceInsightResetDataResultState', 'SecurityAlertPolicyName', 'ServerKeyType', 'ServerSecurityAlertPolicyState', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py similarity index 84% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py index 5b8fb80ef239..0a8c0d063dca 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py @@ -11,17 +11,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -52,13 +52,13 @@ class Advisor(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param properties: The properties of a recommendation action advisor. :type properties: object @@ -91,7 +91,7 @@ class AdvisorsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Advisor] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.Advisor] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -119,7 +119,7 @@ class CloudErrorAutoGenerated(msrest.serialization.Model): """An error response from the Batch service. :param error: Error message. - :type error: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorResponse + :type error: ~azure.mgmt.rdbms.mysql.models.ErrorResponse """ _attribute_map = { @@ -139,13 +139,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -200,7 +200,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mysql.models.Configuration] """ _attribute_map = { @@ -220,13 +220,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -261,7 +261,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database] + :type value: list[~azure.mgmt.rdbms.mysql.models.Database] """ _attribute_map = { @@ -307,7 +307,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -318,9 +318,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mysql.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.mysql.models.ErrorAdditionalInfo] """ _validation = { @@ -358,13 +358,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -403,7 +403,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mysql.models.FirewallRule] """ _attribute_map = { @@ -423,13 +423,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -478,7 +478,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.LogFile] + :type value: list[~azure.mgmt.rdbms.mysql.models.LogFile] """ _attribute_map = { @@ -557,10 +557,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mysql.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mysql.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -634,7 +634,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Operation] + :type value: list[~azure.mgmt.rdbms.mysql.models.Operation] """ _attribute_map = { @@ -653,7 +653,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.mysql.models.PerformanceTierProperties] """ _attribute_map = { @@ -673,13 +673,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.mysql.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -689,6 +709,12 @@ def __init__( ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = kwargs.get('id', None) + self.max_backup_retention_days = kwargs.get('max_backup_retention_days', None) + self.min_backup_retention_days = kwargs.get('min_backup_retention_days', None) + self.max_storage_mb = kwargs.get('max_storage_mb', None) + self.min_large_storage_mb = kwargs.get('min_large_storage_mb', None) + self.max_large_storage_mb = kwargs.get('max_large_storage_mb', None) + self.min_storage_mb = kwargs.get('min_storage_mb', None) self.service_level_objectives = kwargs.get('service_level_objectives', None) @@ -746,20 +772,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -796,7 +822,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -844,16 +870,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.mysql.models.PrivateLinkResourceProperties """ _validation = { @@ -884,7 +910,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -976,17 +1002,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -1009,18 +1035,42 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class QueryPerformanceInsightResetDataResult(msrest.serialization.Model): + """Result of Query Performance Insight data reset. + + :param status: Indicates result of the operation. Possible values include: "Succeeded", + "Failed". + :type status: str or ~azure.mgmt.rdbms.mysql.models.QueryPerformanceInsightResetDataResultState + :param message: operation message. + :type message: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(QueryPerformanceInsightResetDataResult, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.message = kwargs.get('message', None) + + class QueryStatistic(Resource): """Represents a Query Statistic. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Database query identifier. :type query_id: str @@ -1088,13 +1138,13 @@ class QueryText(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Query identifier unique to the server. :type query_id: str @@ -1131,7 +1181,7 @@ class QueryTextsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of query texts. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryText] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.QueryText] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1160,13 +1210,13 @@ class RecommendationAction(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param advisor_name: Advisor name. :type advisor_name: str @@ -1227,7 +1277,7 @@ class RecommendationActionsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationAction] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.RecommendationAction] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1278,6 +1328,70 @@ def __init__( self.status = kwargs.get('status', None) +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The MySQL version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class ResourceIdentity(msrest.serialization.Model): """Azure Active Directory identity configuration for a resource. @@ -1288,7 +1402,7 @@ class ResourceIdentity(msrest.serialization.Model): :param type: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active Directory principal for the resource. Possible values include: "SystemAssigned". - :type type: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.IdentityType + :type type: str or ~azure.mgmt.rdbms.mysql.models.IdentityType :ivar tenant_id: The Azure Active Directory tenant id. :vartype tenant_id: str """ @@ -1315,19 +1429,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1366,50 +1480,48 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :ivar byok_enforcement: Status showing whether the server data encryption is enabled with customer-managed keys. :vartype byok_enforcement: str :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Inaccessible". - :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1419,11 +1531,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1490,13 +1601,13 @@ class ServerAdministratorResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar administrator_type: The type of administrator. Default value: "ActiveDirectory". :vartype administrator_type: str @@ -1541,7 +1652,7 @@ class ServerAdministratorResourceListResult(msrest.serialization.Model): """The response to a list Active Directory Administrators request. :param value: The list of server Active Directory Administrators for the server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource] + :type value: list[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] """ _attribute_map = { @@ -1562,11 +1673,11 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param properties: Required. Properties of the server. - :type properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.mysql.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1603,19 +1714,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.mysql.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1657,7 +1768,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of MySQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1685,7 +1796,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :type value: list[~azure.mgmt.rdbms.mysql.models.Server] """ _attribute_map = { @@ -1708,8 +1819,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :ivar id: Resource Id of the private endpoint connection. :vartype id: str :ivar properties: Private endpoint connection properties. - :vartype properties: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateEndpointConnectionProperties + :vartype properties: ~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1737,15 +1847,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mysql.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProvisioningState """ _validation = { @@ -1777,14 +1887,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". - :type status: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateStatus + :type status: str or ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1818,28 +1927,25 @@ class ServerPropertiesForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode """ _validation = { @@ -1880,28 +1986,25 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -1943,28 +2046,25 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -2000,28 +2100,25 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -2057,28 +2154,25 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -2119,17 +2213,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -2185,29 +2279,27 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -2271,7 +2363,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mysql.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -2312,13 +2404,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.mysql.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql.models.StorageAutogrow """ _attribute_map = { @@ -2414,7 +2505,7 @@ class TopQueryStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of top query statistics. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryStatistic] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.QueryStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2443,13 +2534,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2458,7 +2549,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRuleState """ _validation = { @@ -2493,7 +2584,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2522,13 +2613,13 @@ class WaitStatistic(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_time: Observation start time. :type start_time: ~datetime.datetime @@ -2628,7 +2719,7 @@ class WaitStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of wait statistics. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatistic] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.WaitStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py similarity index 85% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models_py3.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py index 1b808b03c2d7..ee9fbde08535 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py @@ -16,17 +16,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -57,13 +57,13 @@ class Advisor(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param properties: The properties of a recommendation action advisor. :type properties: object @@ -98,7 +98,7 @@ class AdvisorsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Advisor] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.Advisor] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -126,7 +126,7 @@ class CloudErrorAutoGenerated(msrest.serialization.Model): """An error response from the Batch service. :param error: Error message. - :type error: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorResponse + :type error: ~azure.mgmt.rdbms.mysql.models.ErrorResponse """ _attribute_map = { @@ -148,13 +148,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -212,7 +212,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mysql.models.Configuration] """ _attribute_map = { @@ -234,13 +234,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -278,7 +278,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database] + :type value: list[~azure.mgmt.rdbms.mysql.models.Database] """ _attribute_map = { @@ -326,7 +326,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -337,9 +337,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mysql.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.mysql.models.ErrorAdditionalInfo] """ _validation = { @@ -377,13 +377,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -425,7 +425,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mysql.models.FirewallRule] """ _attribute_map = { @@ -447,13 +447,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -506,7 +506,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.LogFile] + :type value: list[~azure.mgmt.rdbms.mysql.models.LogFile] """ _attribute_map = { @@ -594,10 +594,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mysql.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mysql.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -671,7 +671,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Operation] + :type value: list[~azure.mgmt.rdbms.mysql.models.Operation] """ _attribute_map = { @@ -692,7 +692,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.mysql.models.PerformanceTierProperties] """ _attribute_map = { @@ -714,13 +714,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.mysql.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -728,11 +748,23 @@ def __init__( self, *, id: Optional[str] = None, + max_backup_retention_days: Optional[int] = None, + min_backup_retention_days: Optional[int] = None, + max_storage_mb: Optional[int] = None, + min_large_storage_mb: Optional[int] = None, + max_large_storage_mb: Optional[int] = None, + min_storage_mb: Optional[int] = None, service_level_objectives: Optional[List["PerformanceTierServiceLevelObjectives"]] = None, **kwargs ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = id + self.max_backup_retention_days = max_backup_retention_days + self.min_backup_retention_days = min_backup_retention_days + self.max_storage_mb = max_storage_mb + self.min_large_storage_mb = min_large_storage_mb + self.max_large_storage_mb = max_large_storage_mb + self.min_storage_mb = min_storage_mb self.service_level_objectives = service_level_objectives @@ -799,20 +831,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -852,7 +884,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -902,16 +934,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.mysql.models.PrivateLinkResourceProperties """ _validation = { @@ -942,7 +974,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1037,17 +1069,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -1070,18 +1102,45 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class QueryPerformanceInsightResetDataResult(msrest.serialization.Model): + """Result of Query Performance Insight data reset. + + :param status: Indicates result of the operation. Possible values include: "Succeeded", + "Failed". + :type status: str or ~azure.mgmt.rdbms.mysql.models.QueryPerformanceInsightResetDataResultState + :param message: operation message. + :type message: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[Union[str, "QueryPerformanceInsightResetDataResultState"]] = None, + message: Optional[str] = None, + **kwargs + ): + super(QueryPerformanceInsightResetDataResult, self).__init__(**kwargs) + self.status = status + self.message = message + + class QueryStatistic(Resource): """Represents a Query Statistic. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Database query identifier. :type query_id: str @@ -1160,13 +1219,13 @@ class QueryText(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param query_id: Query identifier unique to the server. :type query_id: str @@ -1206,7 +1265,7 @@ class QueryTextsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of query texts. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryText] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.QueryText] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1235,13 +1294,13 @@ class RecommendationAction(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param advisor_name: Advisor name. :type advisor_name: str @@ -1311,7 +1370,7 @@ class RecommendationActionsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of recommendation action advisors. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationAction] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.RecommendationAction] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1366,6 +1425,70 @@ def __init__( self.status = status +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The MySQL version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class ResourceIdentity(msrest.serialization.Model): """Azure Active Directory identity configuration for a resource. @@ -1376,7 +1499,7 @@ class ResourceIdentity(msrest.serialization.Model): :param type: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active Directory principal for the resource. Possible values include: "SystemAssigned". - :type type: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.IdentityType + :type type: str or ~azure.mgmt.rdbms.mysql.models.IdentityType :ivar tenant_id: The Azure Active Directory tenant id. :vartype tenant_id: str """ @@ -1405,19 +1528,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1459,50 +1582,48 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :ivar byok_enforcement: Status showing whether the server data encryption is enabled with customer-managed keys. :vartype byok_enforcement: str :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Inaccessible". - :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1512,11 +1633,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1601,13 +1721,13 @@ class ServerAdministratorResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar administrator_type: The type of administrator. Default value: "ActiveDirectory". :vartype administrator_type: str @@ -1656,7 +1776,7 @@ class ServerAdministratorResourceListResult(msrest.serialization.Model): """The response to a list Active Directory Administrators request. :param value: The list of server Active Directory Administrators for the server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource] + :type value: list[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] """ _attribute_map = { @@ -1679,11 +1799,11 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param properties: Required. Properties of the server. - :type properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.mysql.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1726,19 +1846,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.mysql.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1783,7 +1903,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of MySQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1811,7 +1931,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :type value: list[~azure.mgmt.rdbms.mysql.models.Server] """ _attribute_map = { @@ -1836,8 +1956,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :ivar id: Resource Id of the private endpoint connection. :vartype id: str :ivar properties: Private endpoint connection properties. - :vartype properties: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateEndpointConnectionProperties + :vartype properties: ~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1865,15 +1984,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.mysql.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProvisioningState """ _validation = { @@ -1908,14 +2027,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". - :type status: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateStatus + :type status: str or ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1952,28 +2070,25 @@ class ServerPropertiesForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode """ _validation = { @@ -2021,28 +2136,25 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -2093,28 +2205,25 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -2158,28 +2267,25 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -2223,28 +2329,25 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): All required parameters must be populated in order to send to Azure. :param version: Server version. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". - :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.InfrastructureEncryption + :type infrastructure_encryption: str or ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -2294,17 +2397,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -2368,29 +2471,27 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "5.6", "5.7", "8.0". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -2467,7 +2568,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mysql.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -2514,13 +2615,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or - ~azure.mgmt.rdbms.mysql.v2020_01_01.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.mysql.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql.models.StorageAutogrow """ _attribute_map = { @@ -2630,7 +2730,7 @@ class TopQueryStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of top query statistics. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryStatistic] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.QueryStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2659,13 +2759,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2674,7 +2774,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRuleState """ _validation = { @@ -2712,7 +2812,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -2741,13 +2841,13 @@ class WaitStatistic(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_time: Observation start time. :type start_time: ~datetime.datetime @@ -2861,7 +2961,7 @@ class WaitStatisticsResultList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: The list of wait statistics. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatistic] + :vartype value: list[~azure.mgmt.rdbms.mysql.models.WaitStatistic] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_my_sql_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_my_sql_management_client_enums.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py index bc1037d79b93..2e8442f938ab 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/models/_my_sql_management_client_enums.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py @@ -108,6 +108,13 @@ class PublicNetworkAccessEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum ENABLED = "Enabled" DISABLED = "Disabled" +class QueryPerformanceInsightResetDataResultState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Indicates result of the operation. + """ + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + class SecurityAlertPolicyName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): DEFAULT = "Default" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py index ddb06e36b730..5c44d71d2baa 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py @@ -12,8 +12,11 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations from ._server_administrators_operations import ServerAdministratorsOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations @@ -21,8 +24,8 @@ from ._query_texts_operations import QueryTextsOperations from ._top_query_statistics_operations import TopQueryStatisticsOperations from ._wait_statistics_operations import WaitStatisticsOperations -from ._advisors_operations import AdvisorsOperations from ._my_sql_management_client_operations import MySQLManagementClientOperationsMixin +from ._advisors_operations import AdvisorsOperations from ._recommended_actions_operations import RecommendedActionsOperations from ._location_based_recommended_action_sessions_operation_status_operations import LocationBasedRecommendedActionSessionsOperationStatusOperations from ._location_based_recommended_action_sessions_result_operations import LocationBasedRecommendedActionSessionsResultOperations @@ -37,8 +40,11 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', 'ServerAdministratorsOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', @@ -46,8 +52,8 @@ 'QueryTextsOperations', 'TopQueryStatisticsOperations', 'WaitStatisticsOperations', - 'AdvisorsOperations', 'MySQLManagementClientOperationsMixin', + 'AdvisorsOperations', 'RecommendedActionsOperations', 'LocationBasedRecommendedActionSessionsOperationStatusOperations', 'LocationBasedRecommendedActionSessionsResultOperations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_advisors_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_advisors_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_advisors_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_advisors_operations.py index 4f413a043579..5ce992782180 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_advisors_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_advisors_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class AdvisorsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,7 +52,7 @@ def get( advisor_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Advisor" + # type: (...) -> "_models.Advisor" """Get a recommendation action advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -63,10 +63,10 @@ def get( :type advisor_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Advisor, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Advisor + :rtype: ~azure.mgmt.rdbms.mysql.models.Advisor :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Advisor"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Advisor"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -114,7 +114,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.AdvisorsResultList"] + # type: (...) -> Iterable["_models.AdvisorsResultList"] """List recommendation action advisors. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,10 +123,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either AdvisorsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.AdvisorsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.AdvisorsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.AdvisorsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AdvisorsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_check_name_availability_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_check_name_availability_operations.py index 8c0f939742bc..fdf526776140 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class CheckNameAvailabilityOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -46,21 +46,21 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, - name_availability_request, # type: "models.NameAvailabilityRequest" + name_availability_request, # type: "_models.NameAvailabilityRequest" **kwargs # type: Any ): - # type: (...) -> "models.NameAvailability" + # type: (...) -> "_models.NameAvailability" """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mysql.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mysql.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_configurations_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_configurations_operations.py index 2a74329ac64b..514f1e58d86a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ConfigurationsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> Optional["models.Configuration"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + # type: (...) -> Optional["_models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Configuration"] + # type: (...) -> LROPoller["_models.Configuration"] """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,7 +123,7 @@ def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mysql.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -131,11 +131,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -189,7 +189,7 @@ def get( configuration_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Configuration" + # type: (...) -> "_models.Configuration" """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -200,10 +200,10 @@ def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Configuration + :rtype: ~azure.mgmt.rdbms.mysql.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -251,7 +251,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ConfigurationListResult"] + # type: (...) -> Iterable["_models.ConfigurationListResult"] """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -260,10 +260,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ConfigurationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_databases_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_databases_operations.py index dd474d0a5858..3198117d7248 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class DatabasesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> Optional["models.Database"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + # type: (...) -> Optional["_models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Database"] + # type: (...) -> LROPoller["_models.Database"] """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database + :type parameters: ~azure.mgmt.rdbms.mysql.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -307,7 +307,7 @@ def get( database_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Database" + # type: (...) -> "_models.Database" """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -318,10 +318,10 @@ def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Database + :rtype: ~azure.mgmt.rdbms.mysql.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.DatabaseListResult"] + # type: (...) -> Iterable["_models.DatabaseListResult"] """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.DatabaseListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_firewall_rules_operations.py index c96b75789f9b..2e033b6e55ae 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class FirewallRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.FirewallRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + # type: (...) -> Optional["_models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.FirewallRule"] + # type: (...) -> LROPoller["_models.FirewallRule"] """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mysql.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -307,7 +307,7 @@ def get( firewall_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.FirewallRule" + # type: (...) -> "_models.FirewallRule" """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -318,10 +318,10 @@ def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mysql.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.FirewallRuleListResult"] + # type: (...) -> Iterable["_models.FirewallRuleListResult"] """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.FirewallRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_performance_tier_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_performance_tier_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_performance_tier_operations.py index 206d72fdb78d..32256aeeb9c9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_performance_tier_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LocationBasedPerformanceTierOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,17 +50,17 @@ def list( location_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PerformanceTierListResult"] + # type: (...) -> Iterable["_models.PerformanceTierListResult"] """List all the performance tiers at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PerformanceTierListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PerformanceTierListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_operation_status_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_operation_status_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_operation_status_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_operation_status_operations.py index cd7aca17ff09..629224c2ccf1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_operation_status_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_operation_status_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class LocationBasedRecommendedActionSessionsOperationStatusOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,7 +50,7 @@ def get( operation_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.RecommendedActionSessionsOperationStatus" + # type: (...) -> "_models.RecommendedActionSessionsOperationStatus" """Recommendation action session operation status. :param location_name: The name of the location. @@ -59,10 +59,10 @@ def get( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendedActionSessionsOperationStatus, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendedActionSessionsOperationStatus + :rtype: ~azure.mgmt.rdbms.mysql.models.RecommendedActionSessionsOperationStatus :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendedActionSessionsOperationStatus"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendedActionSessionsOperationStatus"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_result_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_result_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_result_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_result_operations.py index 1a2bf9d37daf..23c47da0824d 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_location_based_recommended_action_sessions_result_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_location_based_recommended_action_sessions_result_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LocationBasedRecommendedActionSessionsResultOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list( operation_id, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.RecommendationActionsResultList"] + # type: (...) -> Iterable["_models.RecommendationActionsResultList"] """Recommendation action session operation result. :param location_name: The name of the location. @@ -60,10 +60,10 @@ def list( :type operation_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultListor ~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationActionsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_log_files_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_log_files_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_log_files_operations.py index 491706b56f52..4b6662740902 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_log_files_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LogFilesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.LogFileListResult"] + # type: (...) -> Iterable["_models.LogFileListResult"] """List all the log files in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.LogFileListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LogFileListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_my_sql_management_client_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_my_sql_management_client_operations.py similarity index 70% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_my_sql_management_client_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_my_sql_management_client_operations.py index 9e923d596c19..f80c6f5cdecf 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_my_sql_management_client_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_my_sql_management_client_operations.py @@ -15,7 +15,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -26,6 +26,65 @@ class MySQLManagementClientOperationsMixin(object): + def reset_query_performance_insight_data( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.QueryPerformanceInsightResetDataResult" + """Reset data for Query Performance Insight. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: QueryPerformanceInsightResetDataResult, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryPerformanceInsightResetDataResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryPerformanceInsightResetDataResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.reset_query_performance_insight_data.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('QueryPerformanceInsightResetDataResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + reset_query_performance_insight_data.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/resetQueryPerformanceInsightData'} # type: ignore + def _create_recommended_action_session_initial( self, resource_group_name, # type: str diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_operations.py index a00de0fa34fd..66917bb9596c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class Operations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -48,15 +48,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> "models.OperationListResult" + # type: (...) -> "_models.OperationListResult" """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mysql.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_endpoint_connections_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_endpoint_connections_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_endpoint_connections_operations.py index 2b626a0554a1..0c3289908ae7 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_endpoint_connections_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class PrivateEndpointConnectionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -54,7 +54,7 @@ def get( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" + # type: (...) -> "_models.PrivateEndpointConnection" """Gets a private endpoint connection. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -65,10 +65,10 @@ def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -115,11 +115,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.PrivateEndpointConnection" + parameters, # type: "_models.PrivateEndpointConnection" **kwargs # type: Any ): - # type: (...) -> Optional["models.PrivateEndpointConnection"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] + # type: (...) -> Optional["_models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PrivateEndpointConnection"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -173,10 +173,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.PrivateEndpointConnection" + parameters, # type: "_models.PrivateEndpointConnection" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.PrivateEndpointConnection"] + # type: (...) -> LROPoller["_models.PrivateEndpointConnection"] """Approve or reject a private endpoint connection with a given name. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -186,7 +186,7 @@ def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -194,11 +194,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -367,11 +367,11 @@ def _update_tags_initial( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.TagsObject" + parameters, # type: "_models.TagsObject" **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + # type: (...) -> "_models.PrivateEndpointConnection" + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -423,10 +423,10 @@ def begin_update_tags( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.TagsObject" + parameters, # type: "_models.TagsObject" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.PrivateEndpointConnection"] + # type: (...) -> LROPoller["_models.PrivateEndpointConnection"] """Updates tags on private endpoint connection. Updates private endpoint connection with the specified tags. @@ -439,7 +439,7 @@ def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.mysql.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -447,11 +447,11 @@ def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -504,7 +504,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PrivateEndpointConnectionListResult"] + # type: (...) -> Iterable["_models.PrivateEndpointConnectionListResult"] """Gets all private endpoint connections on a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -513,10 +513,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnectionListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_link_resources_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_link_resources_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_link_resources_operations.py index fa73a5ebca1b..7b34f1735b8d 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_private_link_resources_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class PrivateLinkResourcesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PrivateLinkResourceListResult"] + # type: (...) -> Iterable["_models.PrivateLinkResourceListResult"] """Gets the private link resources for MySQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -127,7 +127,7 @@ def get( group_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateLinkResource" + # type: (...) -> "_models.PrivateLinkResource" """Gets a private link resource for MySQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -138,10 +138,10 @@ def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.mysql.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_query_texts_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_query_texts_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_query_texts_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_query_texts_operations.py index 85bc9491ccc7..0280d3bf1483 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_query_texts_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_query_texts_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class QueryTextsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,7 +52,7 @@ def get( query_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.QueryText" + # type: (...) -> "_models.QueryText" """Retrieve the Query-Store query texts for the queryId. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -63,10 +63,10 @@ def get( :type query_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryText, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryText + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryText :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryText"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryText"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -115,7 +115,7 @@ def list_by_server( query_ids, # type: List[str] **kwargs # type: Any ): - # type: (...) -> Iterable["models.QueryTextsResultList"] + # type: (...) -> Iterable["_models.QueryTextsResultList"] """Retrieve the Query-Store query texts for specified queryIds. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,10 +126,10 @@ def list_by_server( :type query_ids: list[str] :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either QueryTextsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryTextsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.QueryTextsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryTextsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryTextsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_recommended_actions_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recommended_actions_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_recommended_actions_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recommended_actions_operations.py index a7ef893d98c7..4a215b559067 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_recommended_actions_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recommended_actions_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class RecommendedActionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def get( recommended_action_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.RecommendationAction" + # type: (...) -> "_models.RecommendationAction" """Retrieve recommended actions from the advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -66,10 +66,10 @@ def get( :type recommended_action_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RecommendationAction, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationAction + :rtype: ~azure.mgmt.rdbms.mysql.models.RecommendationAction :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationAction"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationAction"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -120,7 +120,7 @@ def list_by_server( session_id=None, # type: Optional[str] **kwargs # type: Any ): - # type: (...) -> Iterable["models.RecommendationActionsResultList"] + # type: (...) -> Iterable["_models.RecommendationActionsResultList"] """Retrieve recommended actions from the advisor. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -133,10 +133,10 @@ def list_by_server( :type session_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecommendationActionsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.RecommendationActionsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.RecommendationActionsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RecommendationActionsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationActionsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..59caab0599c6 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_recoverable_servers_operations.py @@ -0,0 +1,104 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations(object): + """RecoverableServersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def get( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RecoverableServerResource" + """Gets a recoverable MySQL Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.mysql.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_replicas_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_replicas_operations.py index f1386198f344..46df48c8f7b6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class ReplicasOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_administrators_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_administrators_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py index 28f1d2761254..9b7ed62e3c71 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_administrators_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServerAdministratorsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.ServerAdministratorResource" + # type: (...) -> "_models.ServerAdministratorResource" """Gets information about a AAD server administrator. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -62,10 +62,10 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerAdministratorResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,11 +110,11 @@ def _create_or_update_initial( self, resource_group_name, # type: str server_name, # type: str - properties, # type: "models.ServerAdministratorResource" + properties, # type: "_models.ServerAdministratorResource" **kwargs # type: Any ): - # type: (...) -> "models.ServerAdministratorResource" - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + # type: (...) -> "_models.ServerAdministratorResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -168,10 +168,10 @@ def begin_create_or_update( self, resource_group_name, # type: str server_name, # type: str - properties, # type: "models.ServerAdministratorResource" + properties, # type: "_models.ServerAdministratorResource" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerAdministratorResource"] + # type: (...) -> LROPoller["_models.ServerAdministratorResource"] """Creates or update active directory administrator on an existing server. The update action will overwrite the existing administrator. @@ -181,7 +181,7 @@ def begin_create_or_update( :type server_name: str :param properties: The required parameters for creating or updating an AAD server administrator. - :type properties: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource + :type properties: ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -189,11 +189,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerAdministratorResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResource] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -354,7 +354,7 @@ def list( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerAdministratorResourceListResult"] + # type: (...) -> Iterable["_models.ServerAdministratorResourceListResult"] """Returns a list of server Administrators. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -363,10 +363,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerAdministratorResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerAdministratorResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..8d2efed6a391 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,121 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations(object): + """ServerBasedPerformanceTierOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PerformanceTierListResult"] + """List all the performance tiers for a MySQL server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_keys_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_keys_operations.py index ee68e9152402..922ec90a3629 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServerKeysOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def list( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerKeyListResult"] + # type: (...) -> Iterable["_models.ServerKeyListResult"] """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -62,10 +62,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKeyListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -129,7 +129,7 @@ def get( key_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.ServerKey" + # type: (...) -> "_models.ServerKey" """Gets a MySQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -140,10 +140,10 @@ def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -190,11 +190,11 @@ def _create_or_update_initial( server_name, # type: str key_name, # type: str resource_group_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> "models.ServerKey" - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + # type: (...) -> "_models.ServerKey" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -250,10 +250,10 @@ def begin_create_or_update( server_name, # type: str key_name, # type: str resource_group_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerKey"] + # type: (...) -> LROPoller["_models.ServerKey"] """Creates or updates a MySQL Server key. :param server_name: The name of the server. @@ -263,7 +263,7 @@ def begin_create_or_update( :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :param parameters: The requested MySQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -271,11 +271,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerKey] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..b66cb6c9a860 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_parameters_operations.py @@ -0,0 +1,175 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations(object): + """ServerParametersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.mysql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _list_update_configurations_initial( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/updateConfigurations'} # type: ignore + + def begin_list_update_configurations( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ConfigurationListResult"] + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.mysql.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_security_alert_policies_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_security_alert_policies_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_security_alert_policies_operations.py index f1192779ad58..04510bf50db6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_security_alert_policies_operations.py @@ -15,7 +15,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -31,14 +31,14 @@ class ServerSecurityAlertPoliciesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,10 +50,10 @@ def get( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] **kwargs # type: Any ): - # type: (...) -> "models.ServerSecurityAlertPolicy" + # type: (...) -> "_models.ServerSecurityAlertPolicy" """Get a server's security alert policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -61,13 +61,13 @@ def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,12 +113,12 @@ def _create_or_update_initial( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] - parameters, # type: "models.ServerSecurityAlertPolicy" + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] + parameters, # type: "_models.ServerSecurityAlertPolicy" **kwargs # type: Any ): - # type: (...) -> Optional["models.ServerSecurityAlertPolicy"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerSecurityAlertPolicy"]] + # type: (...) -> Optional["_models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerSecurityAlertPolicy"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -171,11 +171,11 @@ def begin_create_or_update( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] - parameters, # type: "models.ServerSecurityAlertPolicy" + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] + parameters, # type: "_models.ServerSecurityAlertPolicy" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerSecurityAlertPolicy"] + # type: (...) -> LROPoller["_models.ServerSecurityAlertPolicy"] """Creates or updates a threat detection policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -183,9 +183,9 @@ def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.mysql.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -193,11 +193,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_servers_operations.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_servers_operations.py index 8403810cb6ce..a38cf4834792 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServersOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,11 +51,11 @@ def _create_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForCreate" + parameters, # type: "_models.ServerForCreate" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ def begin_create( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForCreate" + parameters, # type: "_models.ServerForCreate" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Creates a new server or updates an existing server. The update action will overwrite the existing server. @@ -122,7 +122,7 @@ def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -130,11 +130,11 @@ def begin_create( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -183,11 +183,11 @@ def _update_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpdateParameters" + parameters, # type: "_models.ServerUpdateParameters" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -239,10 +239,10 @@ def begin_update( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpdateParameters" + parameters, # type: "_models.ServerUpdateParameters" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -251,7 +251,7 @@ def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -259,11 +259,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -422,7 +422,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Server" + # type: (...) -> "_models.Server" """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -431,10 +431,10 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.Server + :rtype: ~azure.mgmt.rdbms.mysql.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -480,17 +480,17 @@ def list_by_resource_group( resource_group_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -550,15 +550,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -761,7 +761,7 @@ def _start_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -872,7 +872,7 @@ def _stop_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -949,7 +949,7 @@ def _upgrade_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpgradeParameters" + parameters, # type: "_models.ServerUpgradeParameters" **kwargs # type: Any ): # type: (...) -> None @@ -989,7 +989,7 @@ def _upgrade_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.CloudErrorAutoGenerated, response) + error = self._deserialize(_models.CloudErrorAutoGenerated, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -1001,7 +1001,7 @@ def begin_upgrade( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpgradeParameters" + parameters, # type: "_models.ServerUpgradeParameters" **kwargs # type: Any ): # type: (...) -> LROPoller[None] @@ -1012,7 +1012,7 @@ def begin_upgrade( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.ServerUpgradeParameters + :type parameters: ~azure.mgmt.rdbms.mysql.models.ServerUpgradeParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_top_query_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_top_query_statistics_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_top_query_statistics_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_top_query_statistics_operations.py index 16924c273322..a4fddac23737 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_top_query_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_top_query_statistics_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class TopQueryStatisticsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,7 +52,7 @@ def get( query_statistic_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.QueryStatistic" + # type: (...) -> "_models.QueryStatistic" """Retrieve the query statistic for specified identifier. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -63,10 +63,10 @@ def get( :type query_statistic_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: QueryStatistic, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.QueryStatistic + :rtype: ~azure.mgmt.rdbms.mysql.models.QueryStatistic :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.QueryStatistic"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.QueryStatistic"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -112,10 +112,10 @@ def list_by_server( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.TopQueryStatisticsInput" + parameters, # type: "_models.TopQueryStatisticsInput" **kwargs # type: Any ): - # type: (...) -> Iterable["models.TopQueryStatisticsResultList"] + # type: (...) -> Iterable["_models.TopQueryStatisticsResultList"] """Retrieve the Query-Store top queries for specified metric and aggregation. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,13 +123,13 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving top query statistics. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.TopQueryStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mysql.models.TopQueryStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TopQueryStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.TopQueryStatisticsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.TopQueryStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.TopQueryStatisticsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopQueryStatisticsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_virtual_network_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_virtual_network_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_virtual_network_rules_operations.py index 8dce8456a97c..f4ce38075f19 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_virtual_network_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class VirtualNetworkRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -54,7 +54,7 @@ def get( virtual_network_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.VirtualNetworkRule" + # type: (...) -> "_models.VirtualNetworkRule" """Gets a virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -65,10 +65,10 @@ def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -115,11 +115,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str virtual_network_rule_name, # type: str - parameters, # type: "models.VirtualNetworkRule" + parameters, # type: "_models.VirtualNetworkRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.VirtualNetworkRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.VirtualNetworkRule"]] + # type: (...) -> Optional["_models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.VirtualNetworkRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -176,10 +176,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str virtual_network_rule_name, # type: str - parameters, # type: "models.VirtualNetworkRule" + parameters, # type: "_models.VirtualNetworkRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.VirtualNetworkRule"] + # type: (...) -> LROPoller["_models.VirtualNetworkRule"] """Creates or updates an existing virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -189,7 +189,7 @@ def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -197,11 +197,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.VirtualNetworkRuleListResult"] + # type: (...) -> Iterable["_models.VirtualNetworkRuleListResult"] """Gets a list of virtual network rules in a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_wait_statistics_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_wait_statistics_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_wait_statistics_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_wait_statistics_operations.py index 99a10302b989..7b122bf329fe 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/operations/_wait_statistics_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_wait_statistics_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class WaitStatisticsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.mysql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,7 +52,7 @@ def get( wait_statistics_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.WaitStatistic" + # type: (...) -> "_models.WaitStatistic" """Retrieve wait statistics for specified identifier. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -63,10 +63,10 @@ def get( :type wait_statistics_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: WaitStatistic, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatistic + :rtype: ~azure.mgmt.rdbms.mysql.models.WaitStatistic :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.WaitStatistic"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatistic"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -112,10 +112,10 @@ def list_by_server( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.WaitStatisticsInput" + parameters, # type: "_models.WaitStatisticsInput" **kwargs # type: Any ): - # type: (...) -> Iterable["models.WaitStatisticsResultList"] + # type: (...) -> Iterable["_models.WaitStatisticsResultList"] """Retrieve wait statistics for specified aggregation window. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,13 +123,13 @@ def list_by_server( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for retrieving wait statistics. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatisticsInput + :type parameters: ~azure.mgmt.rdbms.mysql.models.WaitStatisticsInput :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either WaitStatisticsResultList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_01_01.models.WaitStatisticsResultList] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.models.WaitStatisticsResultList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.WaitStatisticsResultList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WaitStatisticsResultList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_metadata.json b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_metadata.json deleted file mode 100644 index 35debcccff62..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_metadata.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "chosen_version": "2020-01-01", - "total_api_version_list": ["2017-12-01", "2018-06-01", "2020-01-01"], - "client": { - "name": "MySQLManagementClient", - "filename": "_my_sql_management_client", - "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model.", - "base_url": "\u0027https://management.azure.com\u0027", - "custom_base_url": null, - "azure_arm": true, - "has_lro_operations": true, - "client_side_validation": false - }, - "global_parameters": { - "sync": { - "credential": { - "signature": "credential, # type: \"TokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "async": { - "credential": { - "signature": "credential, # type: \"AsyncTokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "constant": { - }, - "call": "credential, subscription_id" - }, - "config": { - "credential": true, - "credential_scopes": ["https://management.azure.com/.default"], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null - }, - "operation_groups": { - "servers": "ServersOperations", - "replicas": "ReplicasOperations", - "firewall_rules": "FirewallRulesOperations", - "virtual_network_rules": "VirtualNetworkRulesOperations", - "databases": "DatabasesOperations", - "configurations": "ConfigurationsOperations", - "log_files": "LogFilesOperations", - "server_administrators": "ServerAdministratorsOperations", - "location_based_performance_tier": "LocationBasedPerformanceTierOperations", - "check_name_availability": "CheckNameAvailabilityOperations", - "operations": "Operations", - "server_security_alert_policies": "ServerSecurityAlertPoliciesOperations", - "query_texts": "QueryTextsOperations", - "top_query_statistics": "TopQueryStatisticsOperations", - "wait_statistics": "WaitStatisticsOperations", - "advisors": "AdvisorsOperations", - "recommended_actions": "RecommendedActionsOperations", - "location_based_recommended_action_sessions_operation_status": "LocationBasedRecommendedActionSessionsOperationStatusOperations", - "location_based_recommended_action_sessions_result": "LocationBasedRecommendedActionSessionsResultOperations", - "private_endpoint_connections": "PrivateEndpointConnectionsOperations", - "private_link_resources": "PrivateLinkResourcesOperations", - "server_keys": "ServerKeysOperations" - }, - "operation_mixins": { - "_create_recommended_action_session_initial" : { - "sync": { - "signature": "def _create_recommended_action_session_initial(\n self,\n resource_group_name, # type: str\n server_name, # type: str\n advisor_name, # type: str\n database_name, # type: str\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"\n\n:param resource_group_name: The name of the resource group. The name is case insensitive.\n:type resource_group_name: str\n:param server_name: The name of the server.\n:type server_name: str\n:param advisor_name: The advisor name for recommendation action.\n:type advisor_name: str\n:param database_name: The name of the database.\n:type database_name: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def _create_recommended_action_session_initial(\n self,\n resource_group_name: str,\n server_name: str,\n advisor_name: str,\n database_name: str,\n **kwargs\n) -\u003e None:\n", - "doc": "\"\"\"\n\n:param resource_group_name: The name of the resource group. The name is case insensitive.\n:type resource_group_name: str\n:param server_name: The name of the server.\n:type server_name: str\n:param advisor_name: The advisor name for recommendation action.\n:type advisor_name: str\n:param database_name: The name of the database.\n:type database_name: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "resource_group_name, server_name, advisor_name, database_name" - }, - "begin_create_recommended_action_session" : { - "sync": { - "signature": "def begin_create_recommended_action_session(\n self,\n resource_group_name, # type: str\n server_name, # type: str\n advisor_name, # type: str\n database_name, # type: str\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Create recommendation action session for the advisor.\n\n:param resource_group_name: The name of the resource group. The name is case insensitive.\n:type resource_group_name: str\n:param server_name: The name of the server.\n:type server_name: str\n:param advisor_name: The advisor name for recommendation action.\n:type advisor_name: str\n:param database_name: The name of the database.\n:type database_name: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either None or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[None]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def begin_create_recommended_action_session(\n self,\n resource_group_name: str,\n server_name: str,\n advisor_name: str,\n database_name: str,\n **kwargs\n) -\u003e AsyncLROPoller[None]:\n", - "doc": "\"\"\"Create recommendation action session for the advisor.\n\n:param resource_group_name: The name of the resource group. The name is case insensitive.\n:type resource_group_name: str\n:param server_name: The name of the server.\n:type server_name: str\n:param advisor_name: The advisor name for recommendation action.\n:type advisor_name: str\n:param database_name: The name of the database.\n:type database_name: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either None or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[None]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "call": "resource_group_name, server_name, advisor_name, database_name" - } - }, - "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.mgmt.core.exceptions\": [\"ARMErrorFormat\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"], \"azure.core.polling\": [\"LROPoller\", \"NoPolling\", \"PollingMethod\"], \"azure.mgmt.core.polling.arm_polling\": [\"ARMPolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}", - "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.mgmt.core.exceptions\": [\"ARMErrorFormat\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"], \"azure.core.polling\": [\"AsyncLROPoller\", \"AsyncNoPolling\", \"AsyncPollingMethod\"], \"azure.mgmt.core.polling.async_arm_polling\": [\"AsyncARMPolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}" -} \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_my_sql_management_client.py deleted file mode 100644 index 8073c6951c6d..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_my_sql_management_client.py +++ /dev/null @@ -1,176 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.mgmt.core import ARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Optional - - from azure.core.credentials import TokenCredential - -from ._configuration import MySQLManagementClientConfiguration -from .operations import ServersOperations -from .operations import ReplicasOperations -from .operations import FirewallRulesOperations -from .operations import VirtualNetworkRulesOperations -from .operations import DatabasesOperations -from .operations import ConfigurationsOperations -from .operations import LogFilesOperations -from .operations import ServerAdministratorsOperations -from .operations import LocationBasedPerformanceTierOperations -from .operations import CheckNameAvailabilityOperations -from .operations import Operations -from .operations import ServerSecurityAlertPoliciesOperations -from .operations import QueryTextsOperations -from .operations import TopQueryStatisticsOperations -from .operations import WaitStatisticsOperations -from .operations import AdvisorsOperations -from .operations import MySQLManagementClientOperationsMixin -from .operations import RecommendedActionsOperations -from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations -from .operations import LocationBasedRecommendedActionSessionsResultOperations -from .operations import PrivateEndpointConnectionsOperations -from .operations import PrivateLinkResourcesOperations -from .operations import ServerKeysOperations -from . import models - - -class MySQLManagementClient(MySQLManagementClientOperationsMixin): - """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. - - :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ServersOperations - :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ReplicasOperations - :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.mysql.v2020_01_01.operations.FirewallRulesOperations - :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: azure.mgmt.rdbms.mysql.v2020_01_01.operations.VirtualNetworkRulesOperations - :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.mysql.v2020_01_01.operations.DatabasesOperations - :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ConfigurationsOperations - :ivar log_files: LogFilesOperations operations - :vartype log_files: azure.mgmt.rdbms.mysql.v2020_01_01.operations.LogFilesOperations - :ivar server_administrators: ServerAdministratorsOperations operations - :vartype server_administrators: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ServerAdministratorsOperations - :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: azure.mgmt.rdbms.mysql.v2020_01_01.operations.LocationBasedPerformanceTierOperations - :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.mysql.v2020_01_01.operations.CheckNameAvailabilityOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.mysql.v2020_01_01.operations.Operations - :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ServerSecurityAlertPoliciesOperations - :ivar query_texts: QueryTextsOperations operations - :vartype query_texts: azure.mgmt.rdbms.mysql.v2020_01_01.operations.QueryTextsOperations - :ivar top_query_statistics: TopQueryStatisticsOperations operations - :vartype top_query_statistics: azure.mgmt.rdbms.mysql.v2020_01_01.operations.TopQueryStatisticsOperations - :ivar wait_statistics: WaitStatisticsOperations operations - :vartype wait_statistics: azure.mgmt.rdbms.mysql.v2020_01_01.operations.WaitStatisticsOperations - :ivar advisors: AdvisorsOperations operations - :vartype advisors: azure.mgmt.rdbms.mysql.v2020_01_01.operations.AdvisorsOperations - :ivar recommended_actions: RecommendedActionsOperations operations - :vartype recommended_actions: azure.mgmt.rdbms.mysql.v2020_01_01.operations.RecommendedActionsOperations - :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations - :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mysql.v2020_01_01.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations - :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations - :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mysql.v2020_01_01.operations.LocationBasedRecommendedActionSessionsResultOperations - :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: azure.mgmt.rdbms.mysql.v2020_01_01.operations.PrivateEndpointConnectionsOperations - :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: azure.mgmt.rdbms.mysql.v2020_01_01.operations.PrivateLinkResourcesOperations - :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.mysql.v2020_01_01.operations.ServerKeysOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - base_url=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> None - if not base_url: - base_url = 'https://management.azure.com' - self._config = MySQLManagementClientConfiguration(credential, subscription_id, **kwargs) - self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False - self._deserialize = Deserializer(client_models) - - self.servers = ServersOperations( - self._client, self._config, self._serialize, self._deserialize) - self.replicas = ReplicasOperations( - self._client, self._config, self._serialize, self._deserialize) - self.firewall_rules = FirewallRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.virtual_network_rules = VirtualNetworkRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.databases = DatabasesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.configurations = ConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.log_files = LogFilesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_administrators = ServerAdministratorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_performance_tier = LocationBasedPerformanceTierOperations( - self._client, self._config, self._serialize, self._deserialize) - self.check_name_availability = CheckNameAvailabilityOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.query_texts = QueryTextsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.top_query_statistics = TopQueryStatisticsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.wait_statistics = WaitStatisticsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.advisors = AdvisorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.recommended_actions = RecommendedActionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_recommended_action_sessions_operation_status = LocationBasedRecommendedActionSessionsOperationStatusOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_recommended_action_sessions_result = LocationBasedRecommendedActionSessionsResultOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_endpoint_connections = PrivateEndpointConnectionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_link_resources = PrivateLinkResourcesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_keys = ServerKeysOperations( - self._client, self._config, self._serialize, self._deserialize) - - def close(self): - # type: () -> None - self._client.close() - - def __enter__(self): - # type: () -> MySQLManagementClient - self._client.__enter__() - return self - - def __exit__(self, *exc_details): - # type: (Any) -> None - self._client.__exit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_my_sql_management_client.py deleted file mode 100644 index 2033e35cfe01..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_my_sql_management_client.py +++ /dev/null @@ -1,170 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, Optional, TYPE_CHECKING - -from azure.mgmt.core import AsyncARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -from ._configuration import MySQLManagementClientConfiguration -from .operations import ServersOperations -from .operations import ReplicasOperations -from .operations import FirewallRulesOperations -from .operations import VirtualNetworkRulesOperations -from .operations import DatabasesOperations -from .operations import ConfigurationsOperations -from .operations import LogFilesOperations -from .operations import ServerAdministratorsOperations -from .operations import LocationBasedPerformanceTierOperations -from .operations import CheckNameAvailabilityOperations -from .operations import Operations -from .operations import ServerSecurityAlertPoliciesOperations -from .operations import QueryTextsOperations -from .operations import TopQueryStatisticsOperations -from .operations import WaitStatisticsOperations -from .operations import AdvisorsOperations -from .operations import MySQLManagementClientOperationsMixin -from .operations import RecommendedActionsOperations -from .operations import LocationBasedRecommendedActionSessionsOperationStatusOperations -from .operations import LocationBasedRecommendedActionSessionsResultOperations -from .operations import PrivateEndpointConnectionsOperations -from .operations import PrivateLinkResourcesOperations -from .operations import ServerKeysOperations -from .. import models - - -class MySQLManagementClient(MySQLManagementClientOperationsMixin): - """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. - - :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ServersOperations - :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ReplicasOperations - :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.FirewallRulesOperations - :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.VirtualNetworkRulesOperations - :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.DatabasesOperations - :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ConfigurationsOperations - :ivar log_files: LogFilesOperations operations - :vartype log_files: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.LogFilesOperations - :ivar server_administrators: ServerAdministratorsOperations operations - :vartype server_administrators: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ServerAdministratorsOperations - :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.LocationBasedPerformanceTierOperations - :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.CheckNameAvailabilityOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.Operations - :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ServerSecurityAlertPoliciesOperations - :ivar query_texts: QueryTextsOperations operations - :vartype query_texts: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.QueryTextsOperations - :ivar top_query_statistics: TopQueryStatisticsOperations operations - :vartype top_query_statistics: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.TopQueryStatisticsOperations - :ivar wait_statistics: WaitStatisticsOperations operations - :vartype wait_statistics: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.WaitStatisticsOperations - :ivar advisors: AdvisorsOperations operations - :vartype advisors: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.AdvisorsOperations - :ivar recommended_actions: RecommendedActionsOperations operations - :vartype recommended_actions: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.RecommendedActionsOperations - :ivar location_based_recommended_action_sessions_operation_status: LocationBasedRecommendedActionSessionsOperationStatusOperations operations - :vartype location_based_recommended_action_sessions_operation_status: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.LocationBasedRecommendedActionSessionsOperationStatusOperations - :ivar location_based_recommended_action_sessions_result: LocationBasedRecommendedActionSessionsResultOperations operations - :vartype location_based_recommended_action_sessions_result: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.LocationBasedRecommendedActionSessionsResultOperations - :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.PrivateEndpointConnectionsOperations - :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.PrivateLinkResourcesOperations - :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.mysql.v2020_01_01.aio.operations.ServerKeysOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - base_url: Optional[str] = None, - **kwargs: Any - ) -> None: - if not base_url: - base_url = 'https://management.azure.com' - self._config = MySQLManagementClientConfiguration(credential, subscription_id, **kwargs) - self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False - self._deserialize = Deserializer(client_models) - - self.servers = ServersOperations( - self._client, self._config, self._serialize, self._deserialize) - self.replicas = ReplicasOperations( - self._client, self._config, self._serialize, self._deserialize) - self.firewall_rules = FirewallRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.virtual_network_rules = VirtualNetworkRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.databases = DatabasesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.configurations = ConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.log_files = LogFilesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_administrators = ServerAdministratorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_performance_tier = LocationBasedPerformanceTierOperations( - self._client, self._config, self._serialize, self._deserialize) - self.check_name_availability = CheckNameAvailabilityOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.query_texts = QueryTextsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.top_query_statistics = TopQueryStatisticsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.wait_statistics = WaitStatisticsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.advisors = AdvisorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.recommended_actions = RecommendedActionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_recommended_action_sessions_operation_status = LocationBasedRecommendedActionSessionsOperationStatusOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_recommended_action_sessions_result = LocationBasedRecommendedActionSessionsResultOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_endpoint_connections = PrivateEndpointConnectionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_link_resources = PrivateLinkResourcesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_keys = ServerKeysOperations( - self._client, self._config, self._serialize, self._deserialize) - - async def close(self) -> None: - await self._client.close() - - async def __aenter__(self) -> "MySQLManagementClient": - await self._client.__aenter__() - return self - - async def __aexit__(self, *exc_details) -> None: - await self._client.__aexit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/__init__.py deleted file mode 100644 index e9f50ee07ef0..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._my_sql_management_client import MySQLManagementClient -__all__ = ['MySQLManagementClient'] - -try: - from ._patch import patch_sdk # type: ignore - patch_sdk() -except ImportError: - pass diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_configuration.py deleted file mode 100644 index 16d4cdaa2eba..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_configuration.py +++ /dev/null @@ -1,70 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any - - from azure.core.credentials import TokenCredential - -VERSION = "unknown" - -class MySQLManagementClientConfiguration(Configuration): - """Configuration for MySQLManagementClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(MySQLManagementClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2020-07-01-privatepreview" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs # type: Any - ): - # type: (...) -> None - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_metadata.json b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_metadata.json deleted file mode 100644 index 73e9416f7983..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_metadata.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "chosen_version": "2020-07-01-privatepreview", - "total_api_version_list": ["2020-07-01-privatepreview"], - "client": { - "name": "MySQLManagementClient", - "filename": "_my_sql_management_client", - "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model.", - "base_url": "\u0027https://management.azure.com\u0027", - "custom_base_url": null, - "azure_arm": true, - "has_lro_operations": true, - "client_side_validation": false - }, - "global_parameters": { - "sync": { - "credential": { - "signature": "credential, # type: \"TokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "async": { - "credential": { - "signature": "credential, # type: \"AsyncTokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "constant": { - }, - "call": "credential, subscription_id" - }, - "config": { - "credential": true, - "credential_scopes": ["https://management.azure.com/.default"], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null - }, - "operation_groups": { - "servers": "ServersOperations", - "replicas": "ReplicasOperations", - "server_keys": "ServerKeysOperations", - "firewall_rules": "FirewallRulesOperations", - "databases": "DatabasesOperations", - "configurations": "ConfigurationsOperations", - "location_based_capabilities": "LocationBasedCapabilitiesOperations", - "check_virtual_network_subnet_usage": "CheckVirtualNetworkSubnetUsageOperations", - "check_name_availability": "CheckNameAvailabilityOperations", - "operations": "Operations" - }, - "operation_mixins": { - }, - "sync_imports": "None", - "async_imports": "None" -} \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/__init__.py deleted file mode 100644 index f7d297a817cf..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._my_sql_management_client import MySQLManagementClient -__all__ = ['MySQLManagementClient'] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_configuration.py deleted file mode 100644 index b72e0e49cc95..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_configuration.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -VERSION = "unknown" - -class MySQLManagementClientConfiguration(Configuration): - """Configuration for MySQLManagementClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - **kwargs: Any - ) -> None: - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(MySQLManagementClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2020-07-01-privatepreview" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs: Any - ) -> None: - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_configuration.py similarity index 98% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_configuration.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_configuration.py index 25e6b7e14e60..c4e0108188c4 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_configuration.py @@ -47,6 +47,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id + self.api_version = "2020-07-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_my_sql_management_client.py similarity index 83% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_my_sql_management_client.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_my_sql_management_client.py index 43e6732ae81d..f3853a214374 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/_my_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/_my_sql_management_client.py @@ -35,25 +35,25 @@ class MySQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.mysql_flexibleservers.operations.ServersOperations :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.ReplicasOperations + :vartype replicas: azure.mgmt.rdbms.mysql_flexibleservers.operations.ReplicasOperations :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.ServerKeysOperations + :vartype server_keys: azure.mgmt.rdbms.mysql_flexibleservers.operations.ServerKeysOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.mysql_flexibleservers.operations.FirewallRulesOperations :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.DatabasesOperations + :vartype databases: azure.mgmt.rdbms.mysql_flexibleservers.operations.DatabasesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.mysql_flexibleservers.operations.ConfigurationsOperations :ivar location_based_capabilities: LocationBasedCapabilitiesOperations operations - :vartype location_based_capabilities: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.LocationBasedCapabilitiesOperations + :vartype location_based_capabilities: azure.mgmt.rdbms.mysql_flexibleservers.operations.LocationBasedCapabilitiesOperations :ivar check_virtual_network_subnet_usage: CheckVirtualNetworkSubnetUsageOperations operations - :vartype check_virtual_network_subnet_usage: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.CheckVirtualNetworkSubnetUsageOperations + :vartype check_virtual_network_subnet_usage: azure.mgmt.rdbms.mysql_flexibleservers.operations.CheckVirtualNetworkSubnetUsageOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.mysql_flexibleservers.operations.CheckNameAvailabilityOperations :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.operations.Operations + :vartype operations: azure.mgmt.rdbms.mysql_flexibleservers.operations.Operations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_configuration.py similarity index 98% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_configuration.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_configuration.py index 2064e0ed43b6..1ab26bcfc92c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/aio/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_configuration.py @@ -44,6 +44,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id + self.api_version = "2020-07-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_my_sql_management_client.py similarity index 82% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_my_sql_management_client.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_my_sql_management_client.py index 7bb1bfe8a1a7..b29c75c6c77b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/_my_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/_my_sql_management_client.py @@ -33,25 +33,25 @@ class MySQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.ServersOperations :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.ReplicasOperations + :vartype replicas: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.ReplicasOperations :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.ServerKeysOperations + :vartype server_keys: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.ServerKeysOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.FirewallRulesOperations :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.DatabasesOperations + :vartype databases: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.DatabasesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.ConfigurationsOperations :ivar location_based_capabilities: LocationBasedCapabilitiesOperations operations - :vartype location_based_capabilities: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.LocationBasedCapabilitiesOperations + :vartype location_based_capabilities: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.LocationBasedCapabilitiesOperations :ivar check_virtual_network_subnet_usage: CheckVirtualNetworkSubnetUsageOperations operations - :vartype check_virtual_network_subnet_usage: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.CheckVirtualNetworkSubnetUsageOperations + :vartype check_virtual_network_subnet_usage: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.CheckVirtualNetworkSubnetUsageOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.CheckNameAvailabilityOperations :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.aio.operations.Operations + :vartype operations: azure.mgmt.rdbms.mysql_flexibleservers.aio.operations.Operations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_name_availability_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_name_availability_operations.py index 50f7c488f3e1..828c12cc0fa3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class CheckNameAvailabilityOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -42,25 +42,25 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, - name_availability_request: "models.NameAvailabilityRequest", + name_availability_request: "_models.NameAvailabilityRequest", **kwargs - ) -> "models.NameAvailability": + ) -> "_models.NameAvailability": """Check the availability of name for server. :param name_availability_request: The required parameters for checking if server name is available. - :type name_availability_request: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mysql_flexibleservers.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_virtual_network_subnet_usage_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_virtual_network_subnet_usage_operations.py similarity index 88% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_virtual_network_subnet_usage_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_virtual_network_subnet_usage_operations.py index aff7b9966f88..fe77e4ad88a8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_check_virtual_network_subnet_usage_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_check_virtual_network_subnet_usage_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class CheckVirtualNetworkSubnetUsageOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,26 +43,26 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, location_name: str, - parameters: "models.VirtualNetworkSubnetUsageParameter", + parameters: "_models.VirtualNetworkSubnetUsageParameter", **kwargs - ) -> "models.VirtualNetworkSubnetUsageResult": + ) -> "_models.VirtualNetworkSubnetUsageResult": """Get virtual network subnet usage for a given vNet resource id. :param location_name: The name of the location. :type location_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VirtualNetworkSubnetUsageParameter + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.VirtualNetworkSubnetUsageParameter :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkSubnetUsageResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VirtualNetworkSubnetUsageResult + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.VirtualNetworkSubnetUsageResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkSubnetUsageResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkSubnetUsageResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_configurations_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_configurations_operations.py index 6f59d90b722d..2cd316ae1df9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ConfigurationsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,15 +48,15 @@ async def _update_initial( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> Optional["models.Configuration"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + ) -> Optional["_models.Configuration"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -105,9 +105,9 @@ async def begin_update( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> AsyncLROPoller["models.Configuration"]: + ) -> AsyncLROPoller["_models.Configuration"]: """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,7 +117,7 @@ async def begin_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -125,11 +125,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -182,7 +182,7 @@ async def get( server_name: str, configuration_name: str, **kwargs - ) -> "models.Configuration": + ) -> "_models.Configuration": """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -193,15 +193,15 @@ async def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -243,7 +243,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ConfigurationListResult"]: + ) -> AsyncIterable["_models.ConfigurationListResult"]: """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -252,15 +252,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ConfigurationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_databases_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_databases_operations.py index feb1651b9265..05829147d06a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class DatabasesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,15 +48,15 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> Optional["models.Database"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + ) -> Optional["_models.Database"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> AsyncLROPoller["models.Database"]: + ) -> AsyncLROPoller["_models.Database"]: """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -191,7 +191,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -300,7 +300,7 @@ async def get( server_name: str, database_name: str, **kwargs - ) -> "models.Database": + ) -> "_models.Database": """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -311,15 +311,15 @@ async def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -361,7 +361,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.DatabaseListResult"]: + ) -> AsyncIterable["_models.DatabaseListResult"]: """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -370,15 +370,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DatabaseListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_firewall_rules_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_firewall_rules_operations.py index ba8c0c18bd1c..d838b6b96119 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class FirewallRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,15 +48,15 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> Optional["models.FirewallRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + ) -> Optional["_models.FirewallRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> AsyncLROPoller["models.FirewallRule"]: + ) -> AsyncLROPoller["_models.FirewallRule"]: """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -191,7 +191,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -300,7 +300,7 @@ async def get( server_name: str, firewall_rule_name: str, **kwargs - ) -> "models.FirewallRule": + ) -> "_models.FirewallRule": """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -311,15 +311,15 @@ async def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -361,7 +361,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.FirewallRuleListResult"]: + ) -> AsyncIterable["_models.FirewallRuleListResult"]: """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -370,15 +370,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_location_based_capabilities_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_location_based_capabilities_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_location_based_capabilities_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_location_based_capabilities_operations.py index 2cf868ba6dbd..bcbd50388a94 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_location_based_capabilities_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_location_based_capabilities_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LocationBasedCapabilitiesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -45,22 +45,22 @@ def list( self, location_name: str, **kwargs - ) -> AsyncIterable["models.CapabilitiesListResult"]: + ) -> AsyncIterable["_models.CapabilitiesListResult"]: """Get capabilities at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either CapabilitiesListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CapabilitiesListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.CapabilitiesListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.CapabilitiesListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.CapabilitiesListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_operations.py index 6e006aa62440..d454a345308a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class Operations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,20 +43,20 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, **kwargs - ) -> "models.OperationListResult": + ) -> "_models.OperationListResult": """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_replicas_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_replicas_operations.py index d779c15b0cd3..319f43f23791 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class ReplicasOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,15 +55,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_server_keys_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_server_keys_operations.py index f4bd426b34d2..c44ee56860a7 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServerKeysOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,15 +48,15 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, key_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> Optional["models.ServerKey"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerKey"]] + ) -> Optional["_models.ServerKey"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerKey"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, key_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> AsyncLROPoller["models.ServerKey"]: + ) -> AsyncLROPoller["_models.ServerKey"]: """Creates or updates a MySQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param key_name: The name of the server key. :type key_name: str :param parameters: The requested MySQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -191,7 +191,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -300,7 +300,7 @@ async def get( server_name: str, key_name: str, **kwargs - ) -> "models.ServerKey": + ) -> "_models.ServerKey": """Gets a server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -311,15 +311,15 @@ async def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -361,7 +361,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerKeyListResult"]: + ) -> AsyncIterable["_models.ServerKeyListResult"]: """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -370,15 +370,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKeyListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_servers_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_servers_operations.py index 6670033ae68c..306eacf573d6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/aio/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/aio/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServersOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,15 +47,15 @@ async def _create_initial( self, resource_group_name: str, server_name: str, - parameters: "models.Server", + parameters: "_models.Server", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -105,9 +105,9 @@ async def begin_create( self, resource_group_name: str, server_name: str, - parameters: "models.Server", + parameters: "_models.Server", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Creates a new server or updates an existing server. The update action will overwrite the existing server. @@ -116,7 +116,7 @@ async def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Server :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -124,11 +124,11 @@ async def begin_create( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -177,15 +177,15 @@ async def _update_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForUpdate", + parameters: "_models.ServerForUpdate", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -232,9 +232,9 @@ async def begin_update( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForUpdate", + parameters: "_models.ServerForUpdate", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -243,7 +243,7 @@ async def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerForUpdate + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerForUpdate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -251,11 +251,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -311,7 +311,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -413,7 +413,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.Server": + ) -> "_models.Server": """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -422,15 +422,15 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -470,22 +470,22 @@ def list_by_resource_group( self, resource_group_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -539,20 +539,20 @@ async def get_next(next_link=None): def list( self, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -613,7 +613,7 @@ async def _restart_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -721,7 +721,7 @@ async def _start_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -829,7 +829,7 @@ async def _stop_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models.py similarity index 87% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models.py index b0f9f10a1a7c..408cb0c0773c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models.py @@ -15,8 +15,7 @@ class CapabilitiesListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of supported capabilities. - :vartype value: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CapabilityProperties] + :vartype value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.CapabilityProperties] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -49,7 +48,7 @@ class CapabilityProperties(msrest.serialization.Model): :vartype zone: str :ivar supported_flexible_server_editions: A list of supported flexible server editions. :vartype supported_flexible_server_editions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerEditionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerEditionCapability] """ _validation = { @@ -72,17 +71,17 @@ def __init__( class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -113,13 +112,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -135,16 +134,15 @@ class Configuration(Resource): :type source: str :ivar is_read_only: If is the configuration read only. Possible values include: "True", "False". - :vartype is_read_only: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsReadOnly + :vartype is_read_only: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsReadOnly :ivar is_config_pending_restart: If is the configuration pending restart or not. Possible values include: "True", "False". :vartype is_config_pending_restart: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsConfigPendingRestart + ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsConfigPendingRestart :ivar is_dynamic_config: If is the configuration dynamic. Possible values include: "True", "False". :vartype is_dynamic_config: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsDynamicConfig + ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsDynamicConfig """ _validation = { @@ -195,7 +193,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -219,13 +217,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -260,7 +258,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Database] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -359,7 +357,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -370,10 +368,10 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ErrorResponse] :ivar additional_info: The error additional info. :vartype additional_info: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ErrorAdditionalInfo] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ErrorAdditionalInfo] """ _validation = { @@ -411,13 +409,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -456,7 +454,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -606,11 +604,12 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationDisplay + :param is_data_action: Indicates whether the operation is a data action. + :type is_data_action: bool :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -625,6 +624,7 @@ class Operation(msrest.serialization.Model): _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, 'origin': {'key': 'origin', 'type': 'str'}, 'properties': {'key': 'properties', 'type': '{object}'}, } @@ -636,6 +636,7 @@ def __init__( super(Operation, self).__init__(**kwargs) self.name = None self.display = None + self.is_data_action = kwargs.get('is_data_action', None) self.origin = None self.properties = None @@ -683,12 +684,16 @@ def __init__( class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. - :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Operation] + :param value: Collection of available operation details. + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Operation] + :param next_link: URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use. + :type next_link: str """ _attribute_map = { 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( @@ -697,20 +702,21 @@ def __init__( ): super(OperationListResult, self).__init__(**kwargs) self.value = kwargs.get('value', None) + self.next_link = kwargs.get('next_link', None) class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -734,19 +740,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -785,22 +791,22 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Identity + :type identity: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Identity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -808,32 +814,29 @@ class Server(TrackedResource): server creation). :type administrator_login_password: str :param version: Server version. Possible values include: "5.7". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SslEnforcementEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.InfrastructureEncryptionEnum + ~azure.mgmt.rdbms.mysql_flexibleservers.models.InfrastructureEncryptionEnum :ivar state: The state of a server. Possible values include: "Ready", "Dropping", "Disabled", "Starting", "Stopping", "Stopped", "Updating". - :vartype state: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerState + :vartype state: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerState :ivar ha_state: The state of a HA server. Possible values include: "NotEnabled", "CreatingStandby", "ReplicatingData", "FailingOver", "Healthy", "RemovingStandby". - :vartype ha_state: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerHAState + :vartype ha_state: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerHAState :param ha_enabled: Enable HA or not for a server. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.HaEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.HaEnabledEnum :ivar fully_qualified_domain_name: The fully qualified domain name of a server. :vartype fully_qualified_domain_name: str :ivar earliest_restore_date: Earliest restore point creation time (ISO8601 format). :vartype earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageProfile :param replication_role: The replication role. :type replication_role: str :ivar replica_capacity: The maximum number of replicas that a primary server can have. @@ -842,10 +845,9 @@ class Server(TrackedResource): Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". :vartype public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.PublicNetworkAccessEnum + ~azure.mgmt.rdbms.mysql_flexibleservers.models.PublicNetworkAccessEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.mysql_flexibleservers.models.MaintenanceWindow :param source_server_id: The source MySQL server id. :type source_server_id: str :param restore_point_in_time: Restore point creation time (ISO8601 format), specifying the time @@ -860,10 +862,10 @@ class Server(TrackedResource): :vartype byok_enforcement: str :param delegated_subnet_arguments: Delegated subnet arguments. :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetArguments + ~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetArguments :param create_mode: The mode to create a new MySQL server. Possible values include: "Default", "PointInTimeRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.CreateMode :param tags_properties_tags: Application-specific metadata in the form of key-value pairs. :type tags_properties_tags: dict[str, str] """ @@ -957,10 +959,10 @@ class ServerEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_editions: A list of supported storage editions. :vartype supported_storage_editions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageEditionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageEditionCapability] :ivar supported_server_versions: A list of supported server versions. :vartype supported_server_versions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerVersionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerVersionCapability] """ _validation = { @@ -989,27 +991,24 @@ class ServerForUpdate(msrest.serialization.Model): """Parameters allowed to update for a server. :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SslEnforcementEnum :param delegated_subnet_arguments: Delegated subnet arguments. :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetArguments + ~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetArguments :param ha_enabled: Enable HA or not for a server. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.HaEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.HaEnabledEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.mysql_flexibleservers.models.MaintenanceWindow :param replication_role: The replication role of the server. :type replication_role: str """ @@ -1047,20 +1046,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1102,7 +1100,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of MySQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1130,7 +1128,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -1157,8 +1155,7 @@ class ServerVersionCapability(msrest.serialization.Model): :ivar name: server version. :vartype name: str :ivar supported_vcores: A list of supported Vcores. - :vartype supported_vcores: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VcoreCapability] + :vartype supported_vcores: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.VcoreCapability] """ _validation = { @@ -1189,7 +1186,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: Required. The tier of the particular SKU, e.g. GeneralPurpose. Possible values include: "Burstable", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SkuTier """ _validation = { @@ -1219,11 +1216,9 @@ class StorageEditionCapability(msrest.serialization.Model): :ivar name: storage edition name. :vartype name: str :ivar min_storage_size: The minimal supported storage size in MB. - :vartype min_storage_size: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageMBCapability + :vartype min_storage_size: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageMBCapability :ivar max_storage_size: The maximum supported storage size in MB. - :vartype max_storage_size: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageMBCapability + :vartype max_storage_size: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageMBCapability :ivar min_backup_retention_days: Minimal backup retention days. :vartype min_backup_retention_days: long :ivar max_backup_retention_days: Maximum backup retention days. @@ -1299,8 +1294,7 @@ class StorageProfile(msrest.serialization.Model): :type storage_iops: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageAutogrow """ _attribute_map = { @@ -1387,7 +1381,7 @@ class VirtualNetworkSubnetUsageResult(msrest.serialization.Model): :ivar delegated_subnets_usage: A list of delegated subnet usage. :vartype delegated_subnets_usage: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetUsage] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetUsage] """ _validation = { diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models_py3.py similarity index 88% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models_py3.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models_py3.py index f9a97b85afbf..be4b93995da0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_models_py3.py @@ -20,8 +20,7 @@ class CapabilitiesListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of supported capabilities. - :vartype value: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CapabilityProperties] + :vartype value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.CapabilityProperties] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -54,7 +53,7 @@ class CapabilityProperties(msrest.serialization.Model): :vartype zone: str :ivar supported_flexible_server_editions: A list of supported flexible server editions. :vartype supported_flexible_server_editions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerEditionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerEditionCapability] """ _validation = { @@ -77,17 +76,17 @@ def __init__( class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -118,13 +117,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -140,16 +139,15 @@ class Configuration(Resource): :type source: str :ivar is_read_only: If is the configuration read only. Possible values include: "True", "False". - :vartype is_read_only: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsReadOnly + :vartype is_read_only: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsReadOnly :ivar is_config_pending_restart: If is the configuration pending restart or not. Possible values include: "True", "False". :vartype is_config_pending_restart: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsConfigPendingRestart + ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsConfigPendingRestart :ivar is_dynamic_config: If is the configuration dynamic. Possible values include: "True", "False". :vartype is_dynamic_config: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.IsDynamicConfig + ~azure.mgmt.rdbms.mysql_flexibleservers.models.IsDynamicConfig """ _validation = { @@ -203,7 +201,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -230,13 +228,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -274,7 +272,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Database] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -378,7 +376,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -389,10 +387,10 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ErrorResponse] :ivar additional_info: The error additional info. :vartype additional_info: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ErrorAdditionalInfo] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ErrorAdditionalInfo] """ _validation = { @@ -430,13 +428,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -478,7 +476,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -643,11 +641,12 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationDisplay + :param is_data_action: Indicates whether the operation is a data action. + :type is_data_action: bool :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -662,17 +661,21 @@ class Operation(msrest.serialization.Model): _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, 'origin': {'key': 'origin', 'type': 'str'}, 'properties': {'key': 'properties', 'type': '{object}'}, } def __init__( self, + *, + is_data_action: Optional[bool] = None, **kwargs ): super(Operation, self).__init__(**kwargs) self.name = None self.display = None + self.is_data_action = is_data_action self.origin = None self.properties = None @@ -720,36 +723,42 @@ def __init__( class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. - :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Operation] + :param value: Collection of available operation details. + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Operation] + :param next_link: URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use. + :type next_link: str """ _attribute_map = { 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, *, value: Optional[List["Operation"]] = None, + next_link: Optional[str] = None, **kwargs ): super(OperationListResult, self).__init__(**kwargs) self.value = value + self.next_link = next_link class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -773,19 +782,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -827,22 +836,22 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Identity + :type identity: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Identity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -850,32 +859,29 @@ class Server(TrackedResource): server creation). :type administrator_login_password: str :param version: Server version. Possible values include: "5.7". - :type version: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SslEnforcementEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.InfrastructureEncryptionEnum + ~azure.mgmt.rdbms.mysql_flexibleservers.models.InfrastructureEncryptionEnum :ivar state: The state of a server. Possible values include: "Ready", "Dropping", "Disabled", "Starting", "Stopping", "Stopped", "Updating". - :vartype state: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerState + :vartype state: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerState :ivar ha_state: The state of a HA server. Possible values include: "NotEnabled", "CreatingStandby", "ReplicatingData", "FailingOver", "Healthy", "RemovingStandby". - :vartype ha_state: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerHAState + :vartype ha_state: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerHAState :param ha_enabled: Enable HA or not for a server. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.HaEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.HaEnabledEnum :ivar fully_qualified_domain_name: The fully qualified domain name of a server. :vartype fully_qualified_domain_name: str :ivar earliest_restore_date: Earliest restore point creation time (ISO8601 format). :vartype earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageProfile :param replication_role: The replication role. :type replication_role: str :ivar replica_capacity: The maximum number of replicas that a primary server can have. @@ -884,10 +890,9 @@ class Server(TrackedResource): Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". :vartype public_network_access: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.PublicNetworkAccessEnum + ~azure.mgmt.rdbms.mysql_flexibleservers.models.PublicNetworkAccessEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.mysql_flexibleservers.models.MaintenanceWindow :param source_server_id: The source MySQL server id. :type source_server_id: str :param restore_point_in_time: Restore point creation time (ISO8601 format), specifying the time @@ -902,10 +907,10 @@ class Server(TrackedResource): :vartype byok_enforcement: str :param delegated_subnet_arguments: Delegated subnet arguments. :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetArguments + ~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetArguments :param create_mode: The mode to create a new MySQL server. Possible values include: "Default", "PointInTimeRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.CreateMode :param tags_properties_tags: Application-specific metadata in the form of key-value pairs. :type tags_properties_tags: dict[str, str] """ @@ -1019,10 +1024,10 @@ class ServerEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_editions: A list of supported storage editions. :vartype supported_storage_editions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageEditionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageEditionCapability] :ivar supported_server_versions: A list of supported server versions. :vartype supported_server_versions: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerVersionCapability] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerVersionCapability] """ _validation = { @@ -1051,27 +1056,24 @@ class ServerForUpdate(msrest.serialization.Model): """Parameters allowed to update for a server. :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Sku + :type sku: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SslEnforcementEnum :param delegated_subnet_arguments: Delegated subnet arguments. :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetArguments + ~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetArguments :param ha_enabled: Enable HA or not for a server. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.HaEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.HaEnabledEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.mysql_flexibleservers.models.MaintenanceWindow :param replication_role: The replication role of the server. :type replication_role: str """ @@ -1119,20 +1121,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1177,7 +1178,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of MySQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1205,7 +1206,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :type value: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -1235,8 +1236,7 @@ class ServerVersionCapability(msrest.serialization.Model): :ivar name: server version. :vartype name: str :ivar supported_vcores: A list of supported Vcores. - :vartype supported_vcores: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VcoreCapability] + :vartype supported_vcores: list[~azure.mgmt.rdbms.mysql_flexibleservers.models.VcoreCapability] """ _validation = { @@ -1267,7 +1267,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: Required. The tier of the particular SKU, e.g. GeneralPurpose. Possible values include: "Burstable", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.SkuTier """ _validation = { @@ -1300,11 +1300,9 @@ class StorageEditionCapability(msrest.serialization.Model): :ivar name: storage edition name. :vartype name: str :ivar min_storage_size: The minimal supported storage size in MB. - :vartype min_storage_size: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageMBCapability + :vartype min_storage_size: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageMBCapability :ivar max_storage_size: The maximum supported storage size in MB. - :vartype max_storage_size: - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageMBCapability + :vartype max_storage_size: ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageMBCapability :ivar min_backup_retention_days: Minimal backup retention days. :vartype min_backup_retention_days: long :ivar max_backup_retention_days: Maximum backup retention days. @@ -1380,8 +1378,7 @@ class StorageProfile(msrest.serialization.Model): :type storage_iops: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or - ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.mysql_flexibleservers.models.StorageAutogrow """ _attribute_map = { @@ -1475,7 +1472,7 @@ class VirtualNetworkSubnetUsageResult(msrest.serialization.Model): :ivar delegated_subnets_usage: A list of delegated subnet usage. :vartype delegated_subnets_usage: - list[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DelegatedSubnetUsage] + list[~azure.mgmt.rdbms.mysql_flexibleservers.models.DelegatedSubnetUsage] """ _validation = { diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_my_sql_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_my_sql_management_client_enums.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/models/_my_sql_management_client_enums.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/models/_my_sql_management_client_enums.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_name_availability_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_name_availability_operations.py index 85ff69b43647..6b257aafebb3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class CheckNameAvailabilityOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -46,26 +46,26 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, - name_availability_request, # type: "models.NameAvailabilityRequest" + name_availability_request, # type: "_models.NameAvailabilityRequest" **kwargs # type: Any ): - # type: (...) -> "models.NameAvailability" + # type: (...) -> "_models.NameAvailability" """Check the availability of name for server. :param name_availability_request: The required parameters for checking if server name is available. - :type name_availability_request: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.mysql_flexibleservers.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_virtual_network_subnet_usage_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_virtual_network_subnet_usage_operations.py similarity index 88% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_virtual_network_subnet_usage_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_virtual_network_subnet_usage_operations.py index 66cf4f08b5cb..3874dca395d1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_check_virtual_network_subnet_usage_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_check_virtual_network_subnet_usage_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class CheckVirtualNetworkSubnetUsageOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -47,27 +47,27 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, location_name, # type: str - parameters, # type: "models.VirtualNetworkSubnetUsageParameter" + parameters, # type: "_models.VirtualNetworkSubnetUsageParameter" **kwargs # type: Any ): - # type: (...) -> "models.VirtualNetworkSubnetUsageResult" + # type: (...) -> "_models.VirtualNetworkSubnetUsageResult" """Get virtual network subnet usage for a given vNet resource id. :param location_name: The name of the location. :type location_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VirtualNetworkSubnetUsageParameter + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.VirtualNetworkSubnetUsageParameter :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkSubnetUsageResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.VirtualNetworkSubnetUsageResult + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.VirtualNetworkSubnetUsageResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkSubnetUsageResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkSubnetUsageResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_configurations_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_configurations_operations.py index 53404caf249c..2e730917ee4b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ConfigurationsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,16 +52,16 @@ def _update_initial( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> Optional["models.Configuration"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + # type: (...) -> Optional["_models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -110,10 +110,10 @@ def begin_update( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Configuration"] + # type: (...) -> LROPoller["_models.Configuration"] """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,7 +123,7 @@ def begin_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -131,11 +131,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -189,7 +189,7 @@ def get( configuration_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Configuration" + # type: (...) -> "_models.Configuration" """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -200,15 +200,15 @@ def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Configuration + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -251,7 +251,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ConfigurationListResult"] + # type: (...) -> Iterable["_models.ConfigurationListResult"] """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -260,15 +260,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ConfigurationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_databases_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_databases_operations.py index ea6a4f670d29..9eecba158fa4 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class DatabasesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,16 +52,16 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> Optional["models.Database"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + # type: (...) -> Optional["_models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Database"] + # type: (...) -> LROPoller["_models.Database"] """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -198,7 +198,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -309,7 +309,7 @@ def get( database_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Database" + # type: (...) -> "_models.Database" """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -320,15 +320,15 @@ def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Database + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -371,7 +371,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.DatabaseListResult"] + # type: (...) -> Iterable["_models.DatabaseListResult"] """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -380,15 +380,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.DatabaseListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_firewall_rules_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_firewall_rules_operations.py index 460e58e60c56..1b1c0a36f360 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class FirewallRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,16 +52,16 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.FirewallRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + # type: (...) -> Optional["_models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.FirewallRule"] + # type: (...) -> LROPoller["_models.FirewallRule"] """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -198,7 +198,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -309,7 +309,7 @@ def get( firewall_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.FirewallRule" + # type: (...) -> "_models.FirewallRule" """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -320,15 +320,15 @@ def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -371,7 +371,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.FirewallRuleListResult"] + # type: (...) -> Iterable["_models.FirewallRuleListResult"] """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -380,15 +380,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.FirewallRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_location_based_capabilities_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_location_based_capabilities_operations.py similarity index 92% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_location_based_capabilities_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_location_based_capabilities_operations.py index c29a48d35138..c95f11f42a3c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_location_based_capabilities_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_location_based_capabilities_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LocationBasedCapabilitiesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,22 +50,22 @@ def list( location_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.CapabilitiesListResult"] + # type: (...) -> Iterable["_models.CapabilitiesListResult"] """Get capabilities at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either CapabilitiesListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.CapabilitiesListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.CapabilitiesListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.CapabilitiesListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.CapabilitiesListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_operations.py index 835da2fc0ccb..0a7f8fd49de3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class Operations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -48,20 +48,20 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> "models.OperationListResult" + # type: (...) -> "_models.OperationListResult" """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_replicas_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_replicas_operations.py index 0eebcce0b1f7..757bae942b2d 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class ReplicasOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,15 +60,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_server_keys_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_server_keys_operations.py index 90a22c440147..4902d7fc3e48 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServerKeysOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,16 +52,16 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str key_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> Optional["models.ServerKey"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerKey"]] + # type: (...) -> Optional["_models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerKey"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str key_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerKey"] + # type: (...) -> LROPoller["_models.ServerKey"] """Creates or updates a MySQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param key_name: The name of the server key. :type key_name: str :param parameters: The requested MySQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -198,7 +198,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -309,7 +309,7 @@ def get( key_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.ServerKey" + # type: (...) -> "_models.ServerKey" """Gets a server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -320,15 +320,15 @@ def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKey + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -371,7 +371,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerKeyListResult"] + # type: (...) -> Iterable["_models.ServerKeyListResult"] """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -380,15 +380,15 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerKeyListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_servers_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_servers_operations.py index 50b111ea50da..e3b253f666ea 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServersOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models + :type models: ~azure.mgmt.rdbms.mysql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,16 +51,16 @@ def _create_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.Server" + parameters, # type: "_models.Server" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -110,10 +110,10 @@ def begin_create( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.Server" + parameters, # type: "_models.Server" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Creates a new server or updates an existing server. The update action will overwrite the existing server. @@ -122,7 +122,7 @@ def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Server :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -130,11 +130,11 @@ def begin_create( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -183,16 +183,16 @@ def _update_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForUpdate" + parameters, # type: "_models.ServerForUpdate" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -239,10 +239,10 @@ def begin_update( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForUpdate" + parameters, # type: "_models.ServerForUpdate" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -251,7 +251,7 @@ def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerForUpdate + :type parameters: ~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerForUpdate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -259,11 +259,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.mysql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -320,7 +320,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -424,7 +424,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Server" + # type: (...) -> "_models.Server" """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -433,15 +433,15 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.Server + :rtype: ~azure.mgmt.rdbms.mysql_flexibleservers.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -482,22 +482,22 @@ def list_by_resource_group( resource_group_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -552,20 +552,20 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql.v2020_07_01_privatepreview.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.mysql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -627,7 +627,7 @@ def _restart_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -737,7 +737,7 @@ def _start_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL @@ -847,7 +847,7 @@ def _stop_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-07-01-privatepreview" + api_version = "2020-07-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/py.typed b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/py.typed similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_01_01/py.typed rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers/py.typed diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_configuration.py index b54a053cf1ee..5814a5d237a1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_configuration.py @@ -1,21 +1,24 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any + +from typing import TYPE_CHECKING from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -from ._version import VERSION +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential +VERSION = "unknown" class PostgreSQLManagementClientConfiguration(Configuration): """Configuration for PostgreSQLManagementClient. @@ -45,7 +48,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'azure-mgmt-rdbms/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_postgre_sql_management_client.py index fb13b72f8425..ce4249179b76 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_postgre_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_postgre_sql_management_client.py @@ -1,337 +1,155 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import TYPE_CHECKING + from azure.mgmt.core import ARMPipelineClient -from msrest import Serializer, Deserializer +from msrest import Deserializer, Serializer -from azure.profiles import KnownProfiles, ProfileDefinition -from azure.profiles.multiapiclient import MultiApiClientMixin -from ._configuration import PostgreSQLManagementClientConfiguration +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional -class _SDKClient(object): - def __init__(self, *args, **kwargs): - """This is a fake class to support current implemetation of MultiApiClientMixin." - Will be removed in final version of multiapi azure-core based client - """ - pass + from azure.core.credentials import TokenCredential -class PostgreSQLManagementClient(MultiApiClientMixin, _SDKClient): +from ._configuration import PostgreSQLManagementClientConfiguration +from .operations import ServersOperations +from .operations import ReplicasOperations +from .operations import FirewallRulesOperations +from .operations import VirtualNetworkRulesOperations +from .operations import DatabasesOperations +from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations +from .operations import LogFilesOperations +from .operations import ServerAdministratorsOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations +from .operations import LocationBasedPerformanceTierOperations +from .operations import CheckNameAvailabilityOperations +from .operations import Operations +from .operations import ServerSecurityAlertPoliciesOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ServerKeysOperations +from . import models + + +class PostgreSQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. - This ready contains multiple API versions, to help you deal with all of the Azure clouds - (Azure Stack, Azure Government, Azure China, etc.). - By default, it uses the latest API version available on public Azure. - For production, you should stick to a particular api-version and/or profile. - The profile sets a mapping between an operation group and its API version. - The api-version parameter sets the default API version if the operation - group is not described in the profile. - + :ivar servers: ServersOperations operations + :vartype servers: azure.mgmt.rdbms.postgresql.operations.ServersOperations + :ivar replicas: ReplicasOperations operations + :vartype replicas: azure.mgmt.rdbms.postgresql.operations.ReplicasOperations + :ivar firewall_rules: FirewallRulesOperations operations + :vartype firewall_rules: azure.mgmt.rdbms.postgresql.operations.FirewallRulesOperations + :ivar virtual_network_rules: VirtualNetworkRulesOperations operations + :vartype virtual_network_rules: azure.mgmt.rdbms.postgresql.operations.VirtualNetworkRulesOperations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.postgresql.operations.DatabasesOperations + :ivar configurations: ConfigurationsOperations operations + :vartype configurations: azure.mgmt.rdbms.postgresql.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.postgresql.operations.ServerParametersOperations + :ivar log_files: LogFilesOperations operations + :vartype log_files: azure.mgmt.rdbms.postgresql.operations.LogFilesOperations + :ivar server_administrators: ServerAdministratorsOperations operations + :vartype server_administrators: azure.mgmt.rdbms.postgresql.operations.ServerAdministratorsOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.postgresql.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.postgresql.operations.ServerBasedPerformanceTierOperations + :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations + :vartype location_based_performance_tier: azure.mgmt.rdbms.postgresql.operations.LocationBasedPerformanceTierOperations + :ivar check_name_availability: CheckNameAvailabilityOperations operations + :vartype check_name_availability: azure.mgmt.rdbms.postgresql.operations.CheckNameAvailabilityOperations + :ivar operations: Operations operations + :vartype operations: azure.mgmt.rdbms.postgresql.operations.Operations + :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations + :vartype server_security_alert_policies: azure.mgmt.rdbms.postgresql.operations.ServerSecurityAlertPoliciesOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.rdbms.postgresql.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.rdbms.postgresql.operations.PrivateLinkResourcesOperations + :ivar server_keys: ServerKeysOperations operations + :vartype server_keys: azure.mgmt.rdbms.postgresql.operations.ServerKeysOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. :type subscription_id: str - :param str api_version: API version to use if no profile is provided, or if - missing in profile. :param str base_url: Service URL - :param profile: A profile definition, from KnownProfiles to dict. - :type profile: azure.profiles.KnownProfiles :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2020-01-01' - _PROFILE_TAG = "azure.mgmt.rdbms.PostgreSQLManagementClient" - LATEST_PROFILE = ProfileDefinition({ - _PROFILE_TAG: { - None: DEFAULT_API_VERSION, - }}, - _PROFILE_TAG + " latest" - ) - def __init__( self, credential, # type: "TokenCredential" subscription_id, # type: str - api_version=None, - base_url=None, - profile=KnownProfiles.default, + base_url=None, # type: Optional[str] **kwargs # type: Any ): + # type: (...) -> None if not base_url: base_url = 'https://management.azure.com' self._config = PostgreSQLManagementClientConfiguration(credential, subscription_id, **kwargs) self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - super(PostgreSQLManagementClient, self).__init__( - api_version=api_version, - profile=profile - ) - - @classmethod - def _models_dict(cls, api_version): - return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} - - @classmethod - def models(cls, api_version=DEFAULT_API_VERSION): - """Module depends on the API version: - - * 2020-01-01: :mod:`v2020_01_01.models` - * 2020-02-14-preview: :mod:`v2020_02_14_preview.models` - """ - if api_version == '2020-01-01': - from .v2020_01_01 import models - return models - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview import models - return models - raise ValueError("API version {} is not available".format(api_version)) - - @property - def check_name_availability(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`CheckNameAvailabilityOperations` - * 2020-02-14-preview: :class:`CheckNameAvailabilityOperations` - """ - api_version = self._get_api_version('check_name_availability') - if api_version == '2020-01-01': - from .v2020_01_01.operations import CheckNameAvailabilityOperations as OperationClass - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import CheckNameAvailabilityOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_name_availability'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def configurations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ConfigurationsOperations` - * 2020-02-14-preview: :class:`ConfigurationsOperations` - """ - api_version = self._get_api_version('configurations') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ConfigurationsOperations as OperationClass - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import ConfigurationsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'configurations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def databases(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`DatabasesOperations` - """ - api_version = self._get_api_version('databases') - if api_version == '2020-01-01': - from .v2020_01_01.operations import DatabasesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'databases'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def firewall_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`FirewallRulesOperations` - * 2020-02-14-preview: :class:`FirewallRulesOperations` - """ - api_version = self._get_api_version('firewall_rules') - if api_version == '2020-01-01': - from .v2020_01_01.operations import FirewallRulesOperations as OperationClass - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import FirewallRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'firewall_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_capabilities(self): - """Instance depends on the API version: - - * 2020-02-14-preview: :class:`LocationBasedCapabilitiesOperations` - """ - api_version = self._get_api_version('location_based_capabilities') - if api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import LocationBasedCapabilitiesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_capabilities'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_performance_tier(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedPerformanceTierOperations` - """ - api_version = self._get_api_version('location_based_performance_tier') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LocationBasedPerformanceTierOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_performance_tier'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def log_files(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LogFilesOperations` - """ - api_version = self._get_api_version('log_files') - if api_version == '2020-01-01': - from .v2020_01_01.operations import LogFilesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'log_files'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - @property - def operations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`Operations` - * 2020-02-14-preview: :class:`Operations` - """ - api_version = self._get_api_version('operations') - if api_version == '2020-01-01': - from .v2020_01_01.operations import Operations as OperationClass - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import Operations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_endpoint_connections(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateEndpointConnectionsOperations` - """ - api_version = self._get_api_version('private_endpoint_connections') - if api_version == '2020-01-01': - from .v2020_01_01.operations import PrivateEndpointConnectionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_link_resources(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateLinkResourcesOperations` - """ - api_version = self._get_api_version('private_link_resources') - if api_version == '2020-01-01': - from .v2020_01_01.operations import PrivateLinkResourcesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def replicas(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ReplicasOperations` - """ - api_version = self._get_api_version('replicas') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ReplicasOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'replicas'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_administrators(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerAdministratorsOperations` - """ - api_version = self._get_api_version('server_administrators') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerAdministratorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_administrators'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_keys(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerKeysOperations` - """ - api_version = self._get_api_version('server_keys') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerKeysOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_keys'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_security_alert_policies(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerSecurityAlertPoliciesOperations` - """ - api_version = self._get_api_version('server_security_alert_policies') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServerSecurityAlertPoliciesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_security_alert_policies'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def servers(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServersOperations` - * 2020-02-14-preview: :class:`ServersOperations` - """ - api_version = self._get_api_version('servers') - if api_version == '2020-01-01': - from .v2020_01_01.operations import ServersOperations as OperationClass - elif api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import ServersOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'servers'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`VirtualNetworkRulesOperations` - """ - api_version = self._get_api_version('virtual_network_rules') - if api_version == '2020-01-01': - from .v2020_01_01.operations import VirtualNetworkRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_subnet_usage(self): - """Instance depends on the API version: - - * 2020-02-14-preview: :class:`VirtualNetworkSubnetUsageOperations` - """ - api_version = self._get_api_version('virtual_network_subnet_usage') - if api_version == '2020-02-14-preview': - from .v2020_02_14_preview.operations import VirtualNetworkSubnetUsageOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_subnet_usage'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.servers = ServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.replicas = ReplicasOperations( + self._client, self._config, self._serialize, self._deserialize) + self.firewall_rules = FirewallRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.virtual_network_rules = VirtualNetworkRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configurations = ConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.log_files = LogFilesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_administrators = ServerAdministratorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_performance_tier = LocationBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.check_name_availability = CheckNameAvailabilityOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_keys = ServerKeysOperations( + self._client, self._config, self._serialize, self._deserialize) def close(self): + # type: () -> None self._client.close() + def __enter__(self): + # type: () -> PostgreSQLManagementClient self._client.__enter__() return self + def __exit__(self, *exc_details): + # type: (Any) -> None self._client.__exit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_version.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_version.py deleted file mode 100644 index 7cf3ebf6b364..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/_version.py +++ /dev/null @@ -1,13 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -VERSION = "8.0.0b1" - diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_configuration.py index f296a85c46ce..ea980785497a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_configuration.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_configuration.py @@ -1,21 +1,22 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any + +from typing import Any, TYPE_CHECKING from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -from .._version import VERSION +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential +VERSION = "unknown" class PostgreSQLManagementClientConfiguration(Configuration): """Configuration for PostgreSQLManagementClient. @@ -31,9 +32,9 @@ class PostgreSQLManagementClientConfiguration(Configuration): def __init__( self, - credential, # type: "AsyncTokenCredential" - subscription_id, # type: str - **kwargs # type: Any + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any ) -> None: if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -44,7 +45,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'azure-mgmt-rdbms/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_postgre_sql_management_client.py index 4ce777c3f351..cb4575fc3ff6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_postgre_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/_postgre_sql_management_client.py @@ -1,337 +1,149 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from azure.mgmt.core import AsyncARMPipelineClient -from msrest import Serializer, Deserializer +from typing import Any, Optional, TYPE_CHECKING -from azure.profiles import KnownProfiles, ProfileDefinition -from azure.profiles.multiapiclient import MultiApiClientMixin -from ._configuration import PostgreSQLManagementClientConfiguration +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer -class _SDKClient(object): - def __init__(self, *args, **kwargs): - """This is a fake class to support current implemetation of MultiApiClientMixin." - Will be removed in final version of multiapi azure-core based client - """ - pass +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential -class PostgreSQLManagementClient(MultiApiClientMixin, _SDKClient): +from ._configuration import PostgreSQLManagementClientConfiguration +from .operations import ServersOperations +from .operations import ReplicasOperations +from .operations import FirewallRulesOperations +from .operations import VirtualNetworkRulesOperations +from .operations import DatabasesOperations +from .operations import ConfigurationsOperations +from .operations import ServerParametersOperations +from .operations import LogFilesOperations +from .operations import ServerAdministratorsOperations +from .operations import RecoverableServersOperations +from .operations import ServerBasedPerformanceTierOperations +from .operations import LocationBasedPerformanceTierOperations +from .operations import CheckNameAvailabilityOperations +from .operations import Operations +from .operations import ServerSecurityAlertPoliciesOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ServerKeysOperations +from .. import models + + +class PostgreSQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. - This ready contains multiple API versions, to help you deal with all of the Azure clouds - (Azure Stack, Azure Government, Azure China, etc.). - By default, it uses the latest API version available on public Azure. - For production, you should stick to a particular api-version and/or profile. - The profile sets a mapping between an operation group and its API version. - The api-version parameter sets the default API version if the operation - group is not described in the profile. - + :ivar servers: ServersOperations operations + :vartype servers: azure.mgmt.rdbms.postgresql.aio.operations.ServersOperations + :ivar replicas: ReplicasOperations operations + :vartype replicas: azure.mgmt.rdbms.postgresql.aio.operations.ReplicasOperations + :ivar firewall_rules: FirewallRulesOperations operations + :vartype firewall_rules: azure.mgmt.rdbms.postgresql.aio.operations.FirewallRulesOperations + :ivar virtual_network_rules: VirtualNetworkRulesOperations operations + :vartype virtual_network_rules: azure.mgmt.rdbms.postgresql.aio.operations.VirtualNetworkRulesOperations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.postgresql.aio.operations.DatabasesOperations + :ivar configurations: ConfigurationsOperations operations + :vartype configurations: azure.mgmt.rdbms.postgresql.aio.operations.ConfigurationsOperations + :ivar server_parameters: ServerParametersOperations operations + :vartype server_parameters: azure.mgmt.rdbms.postgresql.aio.operations.ServerParametersOperations + :ivar log_files: LogFilesOperations operations + :vartype log_files: azure.mgmt.rdbms.postgresql.aio.operations.LogFilesOperations + :ivar server_administrators: ServerAdministratorsOperations operations + :vartype server_administrators: azure.mgmt.rdbms.postgresql.aio.operations.ServerAdministratorsOperations + :ivar recoverable_servers: RecoverableServersOperations operations + :vartype recoverable_servers: azure.mgmt.rdbms.postgresql.aio.operations.RecoverableServersOperations + :ivar server_based_performance_tier: ServerBasedPerformanceTierOperations operations + :vartype server_based_performance_tier: azure.mgmt.rdbms.postgresql.aio.operations.ServerBasedPerformanceTierOperations + :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations + :vartype location_based_performance_tier: azure.mgmt.rdbms.postgresql.aio.operations.LocationBasedPerformanceTierOperations + :ivar check_name_availability: CheckNameAvailabilityOperations operations + :vartype check_name_availability: azure.mgmt.rdbms.postgresql.aio.operations.CheckNameAvailabilityOperations + :ivar operations: Operations operations + :vartype operations: azure.mgmt.rdbms.postgresql.aio.operations.Operations + :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations + :vartype server_security_alert_policies: azure.mgmt.rdbms.postgresql.aio.operations.ServerSecurityAlertPoliciesOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.rdbms.postgresql.aio.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.rdbms.postgresql.aio.operations.PrivateLinkResourcesOperations + :ivar server_keys: ServerKeysOperations operations + :vartype server_keys: azure.mgmt.rdbms.postgresql.aio.operations.ServerKeysOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. :type subscription_id: str - :param str api_version: API version to use if no profile is provided, or if - missing in profile. :param str base_url: Service URL - :param profile: A profile definition, from KnownProfiles to dict. - :type profile: azure.profiles.KnownProfiles :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2020-01-01' - _PROFILE_TAG = "azure.mgmt.rdbms.PostgreSQLManagementClient" - LATEST_PROFILE = ProfileDefinition({ - _PROFILE_TAG: { - None: DEFAULT_API_VERSION, - }}, - _PROFILE_TAG + " latest" - ) - def __init__( self, - credential, # type: "AsyncTokenCredential" - subscription_id, # type: str - api_version=None, - base_url=None, - profile=KnownProfiles.default, - **kwargs # type: Any + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any ) -> None: if not base_url: base_url = 'https://management.azure.com' self._config = PostgreSQLManagementClientConfiguration(credential, subscription_id, **kwargs) self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - super(PostgreSQLManagementClient, self).__init__( - api_version=api_version, - profile=profile - ) - - @classmethod - def _models_dict(cls, api_version): - return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} - - @classmethod - def models(cls, api_version=DEFAULT_API_VERSION): - """Module depends on the API version: - - * 2020-01-01: :mod:`v2020_01_01.models` - * 2020-02-14-preview: :mod:`v2020_02_14_preview.models` - """ - if api_version == '2020-01-01': - from ..v2020_01_01 import models - return models - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview import models - return models - raise ValueError("API version {} is not available".format(api_version)) - - @property - def check_name_availability(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`CheckNameAvailabilityOperations` - * 2020-02-14-preview: :class:`CheckNameAvailabilityOperations` - """ - api_version = self._get_api_version('check_name_availability') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import CheckNameAvailabilityOperations as OperationClass - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import CheckNameAvailabilityOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'check_name_availability'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def configurations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ConfigurationsOperations` - * 2020-02-14-preview: :class:`ConfigurationsOperations` - """ - api_version = self._get_api_version('configurations') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ConfigurationsOperations as OperationClass - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import ConfigurationsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'configurations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def databases(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`DatabasesOperations` - """ - api_version = self._get_api_version('databases') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import DatabasesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'databases'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def firewall_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`FirewallRulesOperations` - * 2020-02-14-preview: :class:`FirewallRulesOperations` - """ - api_version = self._get_api_version('firewall_rules') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import FirewallRulesOperations as OperationClass - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import FirewallRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'firewall_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_capabilities(self): - """Instance depends on the API version: - - * 2020-02-14-preview: :class:`LocationBasedCapabilitiesOperations` - """ - api_version = self._get_api_version('location_based_capabilities') - if api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import LocationBasedCapabilitiesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_capabilities'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def location_based_performance_tier(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LocationBasedPerformanceTierOperations` - """ - api_version = self._get_api_version('location_based_performance_tier') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LocationBasedPerformanceTierOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'location_based_performance_tier'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def log_files(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`LogFilesOperations` - """ - api_version = self._get_api_version('log_files') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import LogFilesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'log_files'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - @property - def operations(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`Operations` - * 2020-02-14-preview: :class:`Operations` - """ - api_version = self._get_api_version('operations') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import Operations as OperationClass - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import Operations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_endpoint_connections(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateEndpointConnectionsOperations` - """ - api_version = self._get_api_version('private_endpoint_connections') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def private_link_resources(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`PrivateLinkResourcesOperations` - """ - api_version = self._get_api_version('private_link_resources') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import PrivateLinkResourcesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def replicas(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ReplicasOperations` - """ - api_version = self._get_api_version('replicas') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ReplicasOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'replicas'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_administrators(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerAdministratorsOperations` - """ - api_version = self._get_api_version('server_administrators') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerAdministratorsOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_administrators'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_keys(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerKeysOperations` - """ - api_version = self._get_api_version('server_keys') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerKeysOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_keys'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def server_security_alert_policies(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServerSecurityAlertPoliciesOperations` - """ - api_version = self._get_api_version('server_security_alert_policies') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServerSecurityAlertPoliciesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'server_security_alert_policies'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def servers(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`ServersOperations` - * 2020-02-14-preview: :class:`ServersOperations` - """ - api_version = self._get_api_version('servers') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import ServersOperations as OperationClass - elif api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import ServersOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'servers'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_rules(self): - """Instance depends on the API version: - - * 2020-01-01: :class:`VirtualNetworkRulesOperations` - """ - api_version = self._get_api_version('virtual_network_rules') - if api_version == '2020-01-01': - from ..v2020_01_01.aio.operations import VirtualNetworkRulesOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_rules'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - @property - def virtual_network_subnet_usage(self): - """Instance depends on the API version: - - * 2020-02-14-preview: :class:`VirtualNetworkSubnetUsageOperations` - """ - api_version = self._get_api_version('virtual_network_subnet_usage') - if api_version == '2020-02-14-preview': - from ..v2020_02_14_preview.aio.operations import VirtualNetworkSubnetUsageOperations as OperationClass - else: - raise ValueError("API version {} does not have operation group 'virtual_network_subnet_usage'".format(api_version)) - return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) - - async def close(self): + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.servers = ServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.replicas = ReplicasOperations( + self._client, self._config, self._serialize, self._deserialize) + self.firewall_rules = FirewallRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.virtual_network_rules = VirtualNetworkRulesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configurations = ConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_parameters = ServerParametersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.log_files = LogFilesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_administrators = ServerAdministratorsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recoverable_servers = RecoverableServersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_based_performance_tier = ServerBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.location_based_performance_tier = LocationBasedPerformanceTierOperations( + self._client, self._config, self._serialize, self._deserialize) + self.check_name_availability = CheckNameAvailabilityOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.server_keys = ServerKeysOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: await self._client.close() - async def __aenter__(self): + + async def __aenter__(self) -> "PostgreSQLManagementClient": await self._client.__aenter__() return self - async def __aexit__(self, *exc_details): + + async def __aexit__(self, *exc_details) -> None: await self._client.__aexit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/__init__.py similarity index 85% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/__init__.py index 16012019075a..170155b06941 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/__init__.py @@ -12,8 +12,11 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations from ._server_administrators_operations import ServerAdministratorsOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations @@ -29,8 +32,11 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', 'ServerAdministratorsOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_check_name_availability_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_check_name_availability_operations.py index 7ebb9a8761ef..a803592eed10 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class CheckNameAvailabilityOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -42,20 +42,20 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, - name_availability_request: "models.NameAvailabilityRequest", + name_availability_request: "_models.NameAvailabilityRequest", **kwargs - ) -> "models.NameAvailability": + ) -> "_models.NameAvailability": """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.postgresql.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.postgresql.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_configurations_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_configurations_operations.py index 90b4bb4396b1..798594db2185 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ConfigurationsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> Optional["models.Configuration"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + ) -> Optional["_models.Configuration"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,9 +105,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> AsyncLROPoller["models.Configuration"]: + ) -> AsyncLROPoller["_models.Configuration"]: """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -117,7 +117,7 @@ async def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration + :type parameters: ~azure.mgmt.rdbms.postgresql.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -125,11 +125,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -182,7 +182,7 @@ async def get( server_name: str, configuration_name: str, **kwargs - ) -> "models.Configuration": + ) -> "_models.Configuration": """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -193,10 +193,10 @@ async def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration + :rtype: ~azure.mgmt.rdbms.postgresql.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -243,7 +243,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ConfigurationListResult"]: + ) -> AsyncIterable["_models.ConfigurationListResult"]: """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -252,10 +252,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ConfigurationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_databases_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_databases_operations.py index 223fe9486bb2..f060e631786f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class DatabasesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> Optional["models.Database"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + ) -> Optional["_models.Database"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, database_name: str, - parameters: "models.Database", + parameters: "_models.Database", **kwargs - ) -> AsyncLROPoller["models.Database"]: + ) -> AsyncLROPoller["_models.Database"]: """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database + :type parameters: ~azure.mgmt.rdbms.postgresql.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -298,7 +298,7 @@ async def get( server_name: str, database_name: str, **kwargs - ) -> "models.Database": + ) -> "_models.Database": """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -309,10 +309,10 @@ async def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database + :rtype: ~azure.mgmt.rdbms.postgresql.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.DatabaseListResult"]: + ) -> AsyncIterable["_models.DatabaseListResult"]: """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.DatabaseListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_firewall_rules_operations.py index b134643958a2..ff1389636364 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class FirewallRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> Optional["models.FirewallRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + ) -> Optional["_models.FirewallRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> AsyncLROPoller["models.FirewallRule"]: + ) -> AsyncLROPoller["_models.FirewallRule"]: """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.postgresql.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -298,7 +298,7 @@ async def get( server_name: str, firewall_rule_name: str, **kwargs - ) -> "models.FirewallRule": + ) -> "_models.FirewallRule": """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -309,10 +309,10 @@ async def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.postgresql.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.FirewallRuleListResult"]: + ) -> AsyncIterable["_models.FirewallRuleListResult"]: """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_location_based_performance_tier_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_location_based_performance_tier_operations.py index 54281338ef52..ba95b8046904 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_location_based_performance_tier_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LocationBasedPerformanceTierOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -45,17 +45,17 @@ def list( self, location_name: str, **kwargs - ) -> AsyncIterable["models.PerformanceTierListResult"]: + ) -> AsyncIterable["_models.PerformanceTierListResult"]: """List all the performance tiers at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PerformanceTierListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_log_files_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_log_files_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_log_files_operations.py index 15451cd93562..f61aa250f7d3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_log_files_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LogFilesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.LogFileListResult"]: + ) -> AsyncIterable["_models.LogFileListResult"]: """List all the log files in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.LogFileListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LogFileListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_operations.py index 2e33c8ec1824..2a9443646732 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class Operations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,15 +43,15 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, **kwargs - ) -> "models.OperationListResult": + ) -> "_models.OperationListResult": """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.postgresql.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_endpoint_connections_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_endpoint_connections_operations.py index c2f85a752ecc..5b870e7562e9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_endpoint_connections_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class PrivateEndpointConnectionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -49,7 +49,7 @@ async def get( server_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": + ) -> "_models.PrivateEndpointConnection": """Gets a private endpoint connection. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ async def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.PrivateEndpointConnection", + parameters: "_models.PrivateEndpointConnection", **kwargs - ) -> Optional["models.PrivateEndpointConnection"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] + ) -> Optional["_models.PrivateEndpointConnection"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PrivateEndpointConnection"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -167,9 +167,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.PrivateEndpointConnection", + parameters: "_models.PrivateEndpointConnection", **kwargs - ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: + ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Approve or reject a private endpoint connection with a given name. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -179,7 +179,7 @@ async def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -187,11 +187,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -358,10 +358,10 @@ async def _update_tags_initial( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.TagsObject", + parameters: "_models.TagsObject", **kwargs - ) -> "models.PrivateEndpointConnection": - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + ) -> "_models.PrivateEndpointConnection": + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -413,9 +413,9 @@ async def begin_update_tags( resource_group_name: str, server_name: str, private_endpoint_connection_name: str, - parameters: "models.TagsObject", + parameters: "_models.TagsObject", **kwargs - ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: + ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Updates tags on private endpoint connection. Updates private endpoint connection with the specified tags. @@ -428,7 +428,7 @@ async def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.postgresql.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -436,11 +436,11 @@ async def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -492,7 +492,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.PrivateEndpointConnectionListResult"]: + ) -> AsyncIterable["_models.PrivateEndpointConnectionListResult"]: """Gets all private endpoint connections on a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -501,10 +501,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnectionListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_link_resources_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_link_resources_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_link_resources_operations.py index 4ad73819fa1e..342bee5a5549 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_private_link_resources_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class PrivateLinkResourcesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.PrivateLinkResourceListResult"]: + ) -> AsyncIterable["_models.PrivateLinkResourceListResult"]: """Gets the private link resources for PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -121,7 +121,7 @@ async def get( server_name: str, group_name: str, **kwargs - ) -> "models.PrivateLinkResource": + ) -> "_models.PrivateLinkResource": """Gets a private link resource for PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -132,10 +132,10 @@ async def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.postgresql.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..36f80120c678 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_recoverable_servers_operations.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations: + """RecoverableServersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def get( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> "_models.RecoverableServerResource": + """Gets a recoverable PostgreSQL Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.postgresql.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_replicas_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_replicas_operations.py index 0f19d8316b24..083cf3ffb8ac 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class ReplicasOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -55,10 +55,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_administrators_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_administrators_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_administrators_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_administrators_operations.py index 2900d6460128..4e4741ea6d6c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_administrators_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_administrators_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServerAdministratorsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.ServerAdministratorResource": + ) -> "_models.ServerAdministratorResource": """Gets information about a AAD server administrator. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -57,10 +57,10 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerAdministratorResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,10 +105,10 @@ async def _create_or_update_initial( self, resource_group_name: str, server_name: str, - properties: "models.ServerAdministratorResource", + properties: "_models.ServerAdministratorResource", **kwargs - ) -> "models.ServerAdministratorResource": - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + ) -> "_models.ServerAdministratorResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -162,9 +162,9 @@ async def begin_create_or_update( self, resource_group_name: str, server_name: str, - properties: "models.ServerAdministratorResource", + properties: "_models.ServerAdministratorResource", **kwargs - ) -> AsyncLROPoller["models.ServerAdministratorResource"]: + ) -> AsyncLROPoller["_models.ServerAdministratorResource"]: """Creates or update active directory administrator on an existing server. The update action will overwrite the existing administrator. @@ -174,7 +174,7 @@ async def begin_create_or_update( :type server_name: str :param properties: The required parameters for creating or updating an AAD server administrator. - :type properties: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource + :type properties: ~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -182,11 +182,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerAdministratorResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -344,7 +344,7 @@ def list( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerAdministratorResourceListResult"]: + ) -> AsyncIterable["_models.ServerAdministratorResourceListResult"]: """Returns a list of server Administrators. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -353,10 +353,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerAdministratorResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..535f46579edc --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,116 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations: + """ServerBasedPerformanceTierOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> AsyncIterable["_models.PerformanceTierListResult"]: + """List all the performance tiers for a PostgreSQL server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_keys_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_keys_operations.py index 5684fefea2bd..6b00257d6ef6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServerKeysOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ def list( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ServerKeyListResult"]: + ) -> AsyncIterable["_models.ServerKeyListResult"]: """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -57,10 +57,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKeyListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -123,7 +123,7 @@ async def get( server_name: str, key_name: str, **kwargs - ) -> "models.ServerKey": + ) -> "_models.ServerKey": """Gets a PostgreSQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -134,10 +134,10 @@ async def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -184,10 +184,10 @@ async def _create_or_update_initial( server_name: str, key_name: str, resource_group_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> "models.ServerKey": - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + ) -> "_models.ServerKey": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -243,9 +243,9 @@ async def begin_create_or_update( server_name: str, key_name: str, resource_group_name: str, - parameters: "models.ServerKey", + parameters: "_models.ServerKey", **kwargs - ) -> AsyncLROPoller["models.ServerKey"]: + ) -> AsyncLROPoller["_models.ServerKey"]: """Creates or updates a PostgreSQL Server key. :param server_name: The name of the server. @@ -255,7 +255,7 @@ async def begin_create_or_update( :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :param parameters: The requested PostgreSQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -263,11 +263,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..d434e5579388 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_parameters_operations.py @@ -0,0 +1,169 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations: + """ServerParametersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _list_update_configurations_initial( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> Optional["_models.ConfigurationListResult"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/updateConfigurations'} # type: ignore + + async def begin_list_update_configurations( + self, + resource_group_name: str, + server_name: str, + value: "_models.ConfigurationListResult", + **kwargs + ) -> AsyncLROPoller["_models.ConfigurationListResult"]: + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_security_alert_policies_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_security_alert_policies_operations.py index a91b2dd3ecf4..ce226a4e6293 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_server_security_alert_policies_operations.py @@ -15,7 +15,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -27,14 +27,14 @@ class ServerSecurityAlertPoliciesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,9 +46,9 @@ async def get( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], **kwargs - ) -> "models.ServerSecurityAlertPolicy": + ) -> "_models.ServerSecurityAlertPolicy": """Get a server's security alert policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -56,13 +56,13 @@ async def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,11 +108,11 @@ async def _create_or_update_initial( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], - parameters: "models.ServerSecurityAlertPolicy", + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], + parameters: "_models.ServerSecurityAlertPolicy", **kwargs - ) -> Optional["models.ServerSecurityAlertPolicy"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerSecurityAlertPolicy"]] + ) -> Optional["_models.ServerSecurityAlertPolicy"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerSecurityAlertPolicy"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -165,10 +165,10 @@ async def begin_create_or_update( self, resource_group_name: str, server_name: str, - security_alert_policy_name: Union[str, "models.SecurityAlertPolicyName"], - parameters: "models.ServerSecurityAlertPolicy", + security_alert_policy_name: Union[str, "_models.SecurityAlertPolicyName"], + parameters: "_models.ServerSecurityAlertPolicy", **kwargs - ) -> AsyncLROPoller["models.ServerSecurityAlertPolicy"]: + ) -> AsyncLROPoller["_models.ServerSecurityAlertPolicy"]: """Creates or updates a threat detection policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -176,9 +176,9 @@ async def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -186,11 +186,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_servers_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_servers_operations.py index 072732d68292..59e961ec9976 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServersOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,10 +47,10 @@ async def _create_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForCreate", + parameters: "_models.ServerForCreate", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,9 +105,9 @@ async def begin_create( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForCreate", + parameters: "_models.ServerForCreate", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Creates a new server, or will overwrite an existing server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -115,7 +115,7 @@ async def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -123,11 +123,11 @@ async def begin_create( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -176,10 +176,10 @@ async def _update_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpdateParameters", + parameters: "_models.ServerUpdateParameters", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -231,9 +231,9 @@ async def begin_update( self, resource_group_name: str, server_name: str, - parameters: "models.ServerUpdateParameters", + parameters: "_models.ServerUpdateParameters", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -242,7 +242,7 @@ async def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -250,11 +250,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -410,7 +410,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.Server": + ) -> "_models.Server": """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -419,10 +419,10 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server + :rtype: ~azure.mgmt.rdbms.postgresql.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -467,17 +467,17 @@ def list_by_resource_group( self, resource_group_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -536,15 +536,15 @@ async def get_next(next_link=None): def list( self, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_virtual_network_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_virtual_network_rules_operations.py index dd767a1aff6e..42f2002d1f94 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/aio/operations/_virtual_network_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class VirtualNetworkRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -49,7 +49,7 @@ async def get( server_name: str, virtual_network_rule_name: str, **kwargs - ) -> "models.VirtualNetworkRule": + ) -> "_models.VirtualNetworkRule": """Gets a virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ async def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, virtual_network_rule_name: str, - parameters: "models.VirtualNetworkRule", + parameters: "_models.VirtualNetworkRule", **kwargs - ) -> Optional["models.VirtualNetworkRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.VirtualNetworkRule"]] + ) -> Optional["_models.VirtualNetworkRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.VirtualNetworkRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -170,9 +170,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, virtual_network_rule_name: str, - parameters: "models.VirtualNetworkRule", + parameters: "_models.VirtualNetworkRule", **kwargs - ) -> AsyncLROPoller["models.VirtualNetworkRule"]: + ) -> AsyncLROPoller["_models.VirtualNetworkRule"]: """Creates or updates an existing virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -182,7 +182,7 @@ async def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -190,11 +190,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -359,7 +359,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.VirtualNetworkRuleListResult"]: + ) -> AsyncIterable["_models.VirtualNetworkRuleListResult"]: """Gets a list of virtual network rules in a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -368,10 +368,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models.py deleted file mode 100644 index db21579cbfbc..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models.py +++ /dev/null @@ -1,7 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -------------------------------------------------------------------------- -from .v2020_01_01.models import * diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/__init__.py similarity index 98% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/__init__.py index bd55d2fa8e8f..b86a9db576b9 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/__init__.py @@ -33,6 +33,7 @@ from ._models_py3 import PrivateLinkResourceProperties from ._models_py3 import PrivateLinkServiceConnectionStateProperty from ._models_py3 import ProxyResource + from ._models_py3 import RecoverableServerResource from ._models_py3 import Resource from ._models_py3 import ResourceIdentity from ._models_py3 import Server @@ -85,6 +86,7 @@ from ._models import PrivateLinkResourceProperties # type: ignore from ._models import PrivateLinkServiceConnectionStateProperty # type: ignore from ._models import ProxyResource # type: ignore + from ._models import RecoverableServerResource # type: ignore from ._models import Resource # type: ignore from ._models import ResourceIdentity # type: ignore from ._models import Server # type: ignore @@ -160,6 +162,7 @@ 'PrivateLinkResourceProperties', 'PrivateLinkServiceConnectionStateProperty', 'ProxyResource', + 'RecoverableServerResource', 'Resource', 'ResourceIdentity', 'Server', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models.py similarity index 83% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models.py index b731a4916b5c..343a76988a95 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models.py @@ -10,17 +10,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -51,13 +51,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -112,7 +112,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Configuration] """ _attribute_map = { @@ -132,13 +132,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -173,7 +173,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Database] """ _attribute_map = { @@ -219,7 +219,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -230,10 +230,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.postgresql.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.postgresql.models.ErrorAdditionalInfo] """ _validation = { @@ -271,13 +270,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -316,7 +315,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.postgresql.models.FirewallRule] """ _attribute_map = { @@ -336,13 +335,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -391,7 +390,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.LogFile] + :type value: list[~azure.mgmt.rdbms.postgresql.models.LogFile] """ _attribute_map = { @@ -470,10 +469,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.postgresql.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.postgresql.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -547,7 +546,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Operation] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Operation] """ _attribute_map = { @@ -566,7 +565,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.postgresql.models.PerformanceTierProperties] """ _attribute_map = { @@ -586,13 +585,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.postgresql.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -602,6 +621,12 @@ def __init__( ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = kwargs.get('id', None) + self.max_backup_retention_days = kwargs.get('max_backup_retention_days', None) + self.min_backup_retention_days = kwargs.get('min_backup_retention_days', None) + self.max_storage_mb = kwargs.get('max_storage_mb', None) + self.min_large_storage_mb = kwargs.get('min_large_storage_mb', None) + self.max_large_storage_mb = kwargs.get('max_large_storage_mb', None) + self.min_storage_mb = kwargs.get('min_storage_mb', None) self.service_level_objectives = kwargs.get('service_level_objectives', None) @@ -659,20 +684,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -709,7 +734,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -757,17 +782,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.postgresql.models.PrivateLinkResourceProperties """ _validation = { @@ -798,7 +822,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -890,17 +914,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -923,6 +947,70 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The PostgreSQL version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class ResourceIdentity(msrest.serialization.Model): """Azure Active Directory identity configuration for a resource. @@ -933,7 +1021,7 @@ class ResourceIdentity(msrest.serialization.Model): :param type: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active Directory principal for the resource. Possible values include: "SystemAssigned". - :type type: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.IdentityType + :type type: str or ~azure.mgmt.rdbms.postgresql.models.IdentityType :ivar tenant_id: The Azure Active Directory tenant id. :vartype tenant_id: str """ @@ -960,19 +1048,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1011,52 +1099,50 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :ivar byok_enforcement: Status showing whether the server data encryption is enabled with customer-managed keys. :vartype byok_enforcement: str :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Inaccessible". - :type user_visible_state: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.postgresql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1066,11 +1152,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.postgresql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1137,13 +1222,13 @@ class ServerAdministratorResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar administrator_type: The type of administrator. Default value: "ActiveDirectory". :vartype administrator_type: str @@ -1188,7 +1273,7 @@ class ServerAdministratorResourceListResult(msrest.serialization.Model): """The response to a list Active Directory Administrators request. :param value: The list of server Active Directory Administrators for the server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource] + :type value: list[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource] """ _attribute_map = { @@ -1209,11 +1294,11 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param properties: Required. Properties of the server. - :type properties: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.postgresql.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1250,19 +1335,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.postgresql.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1304,7 +1389,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of PostgreSQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1332,7 +1417,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Server] """ _attribute_map = { @@ -1356,7 +1441,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :vartype id: str :ivar properties: Private endpoint connection properties. :vartype properties: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateEndpointConnectionProperties + ~azure.mgmt.rdbms.postgresql.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1384,15 +1469,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.postgresql.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProvisioningState """ _validation = { @@ -1425,13 +1510,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". :type status: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateStatus + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1466,29 +1551,26 @@ class ServerPropertiesForCreate(msrest.serialization.Model): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode """ _validation = { @@ -1530,29 +1612,26 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -1595,29 +1674,26 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -1654,29 +1730,26 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -1713,29 +1786,26 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -1776,18 +1846,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -1843,31 +1912,28 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -1912,7 +1978,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.postgresql.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -1953,13 +2019,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.postgresql.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.postgresql.models.StorageAutogrow """ _attribute_map = { @@ -2004,13 +2069,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2019,7 +2084,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRuleState """ _validation = { @@ -2054,7 +2119,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models_py3.py similarity index 84% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models_py3.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models_py3.py index 75d78e226c24..ad193002626b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_models_py3.py @@ -15,17 +15,17 @@ class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -56,13 +56,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -120,7 +120,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Configuration] """ _attribute_map = { @@ -142,13 +142,13 @@ class Database(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param charset: The charset of the database. :type charset: str @@ -186,7 +186,7 @@ class DatabaseListResult(msrest.serialization.Model): """A List of databases. :param value: The list of databases housed in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Database] """ _attribute_map = { @@ -234,7 +234,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -245,10 +245,9 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.postgresql.models.ErrorResponse] :ivar additional_info: The error additional info. - :vartype additional_info: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ErrorAdditionalInfo] + :vartype additional_info: list[~azure.mgmt.rdbms.postgresql.models.ErrorAdditionalInfo] """ _validation = { @@ -286,13 +285,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -334,7 +333,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.postgresql.models.FirewallRule] """ _attribute_map = { @@ -356,13 +355,13 @@ class LogFile(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param size_in_kb: Size of the log file. :type size_in_kb: long @@ -415,7 +414,7 @@ class LogFileListResult(msrest.serialization.Model): """A list of log files. :param value: The list of log files. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.LogFile] + :type value: list[~azure.mgmt.rdbms.postgresql.models.LogFile] """ _attribute_map = { @@ -503,10 +502,10 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.postgresql.models.OperationDisplay :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.postgresql.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -580,7 +579,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: The list of resource provider operations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Operation] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Operation] """ _attribute_map = { @@ -601,7 +600,7 @@ class PerformanceTierListResult(msrest.serialization.Model): """A list of performance tiers. :param value: The list of performance tiers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierProperties] + :type value: list[~azure.mgmt.rdbms.postgresql.models.PerformanceTierProperties] """ _attribute_map = { @@ -623,13 +622,33 @@ class PerformanceTierProperties(msrest.serialization.Model): :param id: ID of the performance tier. :type id: str + :param max_backup_retention_days: Maximum Backup retention in days for the performance tier + edition. + :type max_backup_retention_days: int + :param min_backup_retention_days: Minimum Backup retention in days for the performance tier + edition. + :type min_backup_retention_days: int + :param max_storage_mb: Max storage allowed for a server. + :type max_storage_mb: int + :param min_large_storage_mb: Max storage allowed for a server. + :type min_large_storage_mb: int + :param max_large_storage_mb: Max storage allowed for a server. + :type max_large_storage_mb: int + :param min_storage_mb: Max storage allowed for a server. + :type min_storage_mb: int :param service_level_objectives: Service level objectives associated with the performance tier. :type service_level_objectives: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierServiceLevelObjectives] + list[~azure.mgmt.rdbms.postgresql.models.PerformanceTierServiceLevelObjectives] """ _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'max_backup_retention_days': {'key': 'maxBackupRetentionDays', 'type': 'int'}, + 'min_backup_retention_days': {'key': 'minBackupRetentionDays', 'type': 'int'}, + 'max_storage_mb': {'key': 'maxStorageMB', 'type': 'int'}, + 'min_large_storage_mb': {'key': 'minLargeStorageMB', 'type': 'int'}, + 'max_large_storage_mb': {'key': 'maxLargeStorageMB', 'type': 'int'}, + 'min_storage_mb': {'key': 'minStorageMB', 'type': 'int'}, 'service_level_objectives': {'key': 'serviceLevelObjectives', 'type': '[PerformanceTierServiceLevelObjectives]'}, } @@ -637,11 +656,23 @@ def __init__( self, *, id: Optional[str] = None, + max_backup_retention_days: Optional[int] = None, + min_backup_retention_days: Optional[int] = None, + max_storage_mb: Optional[int] = None, + min_large_storage_mb: Optional[int] = None, + max_large_storage_mb: Optional[int] = None, + min_storage_mb: Optional[int] = None, service_level_objectives: Optional[List["PerformanceTierServiceLevelObjectives"]] = None, **kwargs ): super(PerformanceTierProperties, self).__init__(**kwargs) self.id = id + self.max_backup_retention_days = max_backup_retention_days + self.min_backup_retention_days = min_backup_retention_days + self.max_storage_mb = max_storage_mb + self.min_large_storage_mb = min_large_storage_mb + self.max_large_storage_mb = max_large_storage_mb + self.min_storage_mb = min_storage_mb self.service_level_objectives = service_level_objectives @@ -708,20 +739,20 @@ class PrivateEndpointConnection(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. :vartype provisioning_state: str """ @@ -761,7 +792,7 @@ class PrivateEndpointConnectionListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -811,17 +842,16 @@ class PrivateLinkResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar properties: The private link resource group id. - :vartype properties: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResourceProperties + :vartype properties: ~azure.mgmt.rdbms.postgresql.models.PrivateLinkResourceProperties """ _validation = { @@ -852,7 +882,7 @@ class PrivateLinkResourceListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResource] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.PrivateLinkResource] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -947,17 +977,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -980,6 +1010,70 @@ def __init__( super(ProxyResource, self).__init__(**kwargs) +class RecoverableServerResource(Resource): + """A recoverable server resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar last_available_backup_date_time: The last available backup date time. + :vartype last_available_backup_date_time: str + :ivar service_level_objective: The service level objective. + :vartype service_level_objective: str + :ivar edition: Edition of the performance tier. + :vartype edition: str + :ivar v_core: vCore associated with the service level objective. + :vartype v_core: int + :ivar hardware_generation: Hardware generation associated with the service level objective. + :vartype hardware_generation: str + :ivar version: The PostgreSQL version. + :vartype version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_available_backup_date_time': {'readonly': True}, + 'service_level_objective': {'readonly': True}, + 'edition': {'readonly': True}, + 'v_core': {'readonly': True}, + 'hardware_generation': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_available_backup_date_time': {'key': 'properties.lastAvailableBackupDateTime', 'type': 'str'}, + 'service_level_objective': {'key': 'properties.serviceLevelObjective', 'type': 'str'}, + 'edition': {'key': 'properties.edition', 'type': 'str'}, + 'v_core': {'key': 'properties.vCore', 'type': 'int'}, + 'hardware_generation': {'key': 'properties.hardwareGeneration', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecoverableServerResource, self).__init__(**kwargs) + self.last_available_backup_date_time = None + self.service_level_objective = None + self.edition = None + self.v_core = None + self.hardware_generation = None + self.version = None + + class ResourceIdentity(msrest.serialization.Model): """Azure Active Directory identity configuration for a resource. @@ -990,7 +1084,7 @@ class ResourceIdentity(msrest.serialization.Model): :param type: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active Directory principal for the resource. Possible values include: "SystemAssigned". - :type type: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.IdentityType + :type type: str or ~azure.mgmt.rdbms.postgresql.models.IdentityType :ivar tenant_id: The Azure Active Directory tenant id. :vartype tenant_id: str """ @@ -1019,19 +1113,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -1073,52 +1167,50 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :ivar byok_enforcement: Status showing whether the server data encryption is enabled with customer-managed keys. :vartype byok_enforcement: str :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Inaccessible". - :type user_visible_state: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerState + :type user_visible_state: str or ~azure.mgmt.rdbms.postgresql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a server. :type fully_qualified_domain_name: str :param earliest_restore_date: Earliest restore point creation time (ISO8601 format). :type earliest_restore_date: ~datetime.datetime :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param replication_role: The replication role of the server. :type replication_role: str :param master_server_id: The master server id of a replica server. @@ -1128,11 +1220,10 @@ class Server(TrackedResource): :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :ivar private_endpoint_connections: List of private endpoint connections on a server. :vartype private_endpoint_connections: - list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateEndpointConnection] + list[~azure.mgmt.rdbms.postgresql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1217,13 +1308,13 @@ class ServerAdministratorResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar administrator_type: The type of administrator. Default value: "ActiveDirectory". :vartype administrator_type: str @@ -1272,7 +1363,7 @@ class ServerAdministratorResourceListResult(msrest.serialization.Model): """The response to a list Active Directory Administrators request. :param value: The list of server Active Directory Administrators for the server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource] + :type value: list[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource] """ _attribute_map = { @@ -1295,11 +1386,11 @@ class ServerForCreate(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param properties: Required. Properties of the server. - :type properties: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPropertiesForCreate + :type properties: ~azure.mgmt.rdbms.postgresql.models.ServerPropertiesForCreate :param location: Required. The location the resource resides in. :type location: str :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. @@ -1342,19 +1433,19 @@ class ServerKey(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :ivar kind: Kind of encryption protector used to protect the key. :vartype kind: str :param server_key_type: The key type like 'AzureKeyVault'. Possible values include: "AzureKeyVault". - :type server_key_type: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKeyType + :type server_key_type: str or ~azure.mgmt.rdbms.postgresql.models.ServerKeyType :param uri: The URI of the key. :type uri: str :ivar creation_date: The key creation date. @@ -1399,7 +1490,7 @@ class ServerKeyListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of PostgreSQL Server keys. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.ServerKey] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -1427,7 +1518,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of servers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :type value: list[~azure.mgmt.rdbms.postgresql.models.Server] """ _attribute_map = { @@ -1453,7 +1544,7 @@ class ServerPrivateEndpointConnection(msrest.serialization.Model): :vartype id: str :ivar properties: Private endpoint connection properties. :vartype properties: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateEndpointConnectionProperties + ~azure.mgmt.rdbms.postgresql.models.ServerPrivateEndpointConnectionProperties """ _validation = { @@ -1481,15 +1572,15 @@ class ServerPrivateEndpointConnectionProperties(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :param private_endpoint: Private endpoint which the connection belongs to. - :type private_endpoint: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProperty + :type private_endpoint: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProperty :param private_link_service_connection_state: Connection state of the private endpoint connection. :type private_link_service_connection_state: - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerPrivateLinkServiceConnectionStateProperty + ~azure.mgmt.rdbms.postgresql.models.ServerPrivateLinkServiceConnectionStateProperty :ivar provisioning_state: State of the private endpoint connection. Possible values include: "Approving", "Ready", "Dropping", "Failed", "Rejecting". :vartype provisioning_state: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointProvisioningState + ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointProvisioningState """ _validation = { @@ -1525,13 +1616,13 @@ class ServerPrivateLinkServiceConnectionStateProperty(msrest.serialization.Model :param status: Required. The private link service connection status. Possible values include: "Approved", "Pending", "Rejected", "Disconnected". :type status: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateStatus + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateStatus :param description: Required. The private link service connection description. :type description: str :ivar actions_required: The actions required for private link service connection. Possible values include: "None". :vartype actions_required: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkServiceConnectionStateActionsRequire + ~azure.mgmt.rdbms.postgresql.models.PrivateLinkServiceConnectionStateActionsRequire """ _validation = { @@ -1569,29 +1660,26 @@ class ServerPropertiesForCreate(msrest.serialization.Model): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode """ _validation = { @@ -1640,29 +1728,26 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param administrator_login: Required. The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -1714,29 +1799,26 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str """ @@ -1781,29 +1863,26 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The master server id to create replica from. :type source_server_id: str """ @@ -1848,29 +1927,26 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): :param version: Server version. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param infrastructure_encryption: Status showing whether the server enabled infrastructure encryption. Possible values include: "Enabled", "Disabled". :type infrastructure_encryption: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.InfrastructureEncryption + ~azure.mgmt.rdbms.postgresql.models.InfrastructureEncryption :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param create_mode: Required. The mode to create a new server.Constant filled by server. Possible values include: "Default", "PointInTimeRestore", "GeoRestore", "Replica". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql.models.CreateMode :param source_server_id: Required. The source server id to restore from. :type source_server_id: str :param restore_point_in_time: Required. Restore point creation time (ISO8601 format), @@ -1920,18 +1996,17 @@ class ServerSecurityAlertPolicy(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param state: Specifies the state of the policy, whether it is enabled or disabled. Possible values include: "Enabled", "Disabled". - :type state: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicyState + :type state: str or ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicyState :param disabled_alerts: Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly. :type disabled_alerts: list[str] @@ -1995,31 +2070,28 @@ class ServerUpdateParameters(msrest.serialization.Model): """Parameters allowed to update for a server. :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ResourceIdentity + :type identity: ~azure.mgmt.rdbms.postgresql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql.models.StorageProfile :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param version: The version of a server. Possible values include: "9.5", "9.6", "10", "10.0", "10.2", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql.models.ServerVersion :param ssl_enforcement: Enable ssl enforcement or not when connect to server. Possible values include: "Enabled", "Disabled". - :type ssl_enforcement: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SslEnforcementEnum + :type ssl_enforcement: str or ~azure.mgmt.rdbms.postgresql.models.SslEnforcementEnum :param minimal_tls_version: Enforce a minimal Tls version for the server. Possible values include: "TLS1_0", "TLS1_1", "TLS1_2", "TLSEnforcementDisabled". - :type minimal_tls_version: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.MinimalTlsVersionEnum + :type minimal_tls_version: str or ~azure.mgmt.rdbms.postgresql.models.MinimalTlsVersionEnum :param public_network_access: Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. Possible values include: "Enabled", "Disabled". - :type public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PublicNetworkAccessEnum + :type public_network_access: str or ~azure.mgmt.rdbms.postgresql.models.PublicNetworkAccessEnum :param replication_role: The replication role of the server. :type replication_role: str """ @@ -2075,7 +2147,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: The tier of the particular SKU, e.g. Basic. Possible values include: "Basic", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.postgresql.models.SkuTier :param capacity: The scale up/out capacity, representing server's compute units. :type capacity: int :param size: The size code, to be interpreted by resource as appropriate. @@ -2122,13 +2194,12 @@ class StorageProfile(msrest.serialization.Model): :type backup_retention_days: int :param geo_redundant_backup: Enable Geo-redundant or not for server backup. Possible values include: "Enabled", "Disabled". - :type geo_redundant_backup: str or - ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.GeoRedundantBackup + :type geo_redundant_backup: str or ~azure.mgmt.rdbms.postgresql.models.GeoRedundantBackup :param storage_mb: Max storage allowed for a server. :type storage_mb: int :param storage_autogrow: Enable Storage Auto Grow. Possible values include: "Enabled", "Disabled". - :type storage_autogrow: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.StorageAutogrow + :type storage_autogrow: str or ~azure.mgmt.rdbms.postgresql.models.StorageAutogrow """ _attribute_map = { @@ -2180,13 +2251,13 @@ class VirtualNetworkRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param virtual_network_subnet_id: The ARM resource id of the virtual network subnet. :type virtual_network_subnet_id: str @@ -2195,7 +2266,7 @@ class VirtualNetworkRule(Resource): :type ignore_missing_vnet_service_endpoint: bool :ivar state: Virtual Network Rule State. Possible values include: "Initializing", "InProgress", "Ready", "Deleting", "Unknown". - :vartype state: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRuleState + :vartype state: str or ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRuleState """ _validation = { @@ -2233,7 +2304,7 @@ class VirtualNetworkRuleListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: Array of results. - :vartype value: list[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule] + :vartype value: list[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_postgre_sql_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_postgre_sql_management_client_enums.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/models/_postgre_sql_management_client_enums.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/models/_postgre_sql_management_client_enums.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/__init__.py similarity index 85% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/__init__.py index 16012019075a..170155b06941 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/__init__.py @@ -12,8 +12,11 @@ from ._virtual_network_rules_operations import VirtualNetworkRulesOperations from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations +from ._server_parameters_operations import ServerParametersOperations from ._log_files_operations import LogFilesOperations from ._server_administrators_operations import ServerAdministratorsOperations +from ._recoverable_servers_operations import RecoverableServersOperations +from ._server_based_performance_tier_operations import ServerBasedPerformanceTierOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._operations import Operations @@ -29,8 +32,11 @@ 'VirtualNetworkRulesOperations', 'DatabasesOperations', 'ConfigurationsOperations', + 'ServerParametersOperations', 'LogFilesOperations', 'ServerAdministratorsOperations', + 'RecoverableServersOperations', + 'ServerBasedPerformanceTierOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'Operations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_check_name_availability_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_check_name_availability_operations.py index 453086f79c1b..65083a224944 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class CheckNameAvailabilityOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -46,21 +46,21 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, - name_availability_request, # type: "models.NameAvailabilityRequest" + name_availability_request, # type: "_models.NameAvailabilityRequest" **kwargs # type: Any ): - # type: (...) -> "models.NameAvailability" + # type: (...) -> "_models.NameAvailability" """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.postgresql.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.postgresql.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_configurations_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_configurations_operations.py index 348cc09379de..98443500872f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ConfigurationsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> Optional["models.Configuration"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + # type: (...) -> Optional["_models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Configuration"] + # type: (...) -> LROPoller["_models.Configuration"] """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -123,7 +123,7 @@ def begin_create_or_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration + :type parameters: ~azure.mgmt.rdbms.postgresql.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -131,11 +131,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -189,7 +189,7 @@ def get( configuration_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Configuration" + # type: (...) -> "_models.Configuration" """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -200,10 +200,10 @@ def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Configuration + :rtype: ~azure.mgmt.rdbms.postgresql.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -251,7 +251,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ConfigurationListResult"] + # type: (...) -> Iterable["_models.ConfigurationListResult"] """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -260,10 +260,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ConfigurationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_databases_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_databases_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_databases_operations.py index e1134386a437..244e8a5b60d7 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_databases_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_databases_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class DatabasesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> Optional["models.Database"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Database"]] + # type: (...) -> Optional["_models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str database_name, # type: str - parameters, # type: "models.Database" + parameters, # type: "_models.Database" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Database"] + # type: (...) -> LROPoller["_models.Database"] """Creates a new database or updates an existing database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param database_name: The name of the database. :type database_name: str :param parameters: The required parameters for creating or updating a database. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database + :type parameters: ~azure.mgmt.rdbms.postgresql.models.Database :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Database or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.Database] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -307,7 +307,7 @@ def get( database_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Database" + # type: (...) -> "_models.Database" """Gets information about a database. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -318,10 +318,10 @@ def get( :type database_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Database, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Database + :rtype: ~azure.mgmt.rdbms.postgresql.models.Database :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.DatabaseListResult"] + # type: (...) -> Iterable["_models.DatabaseListResult"] """List all the databases in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either DatabaseListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.DatabaseListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.DatabaseListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatabaseListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_firewall_rules_operations.py index fed27c32317e..e30b510d542e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class FirewallRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.FirewallRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + # type: (...) -> Optional["_models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.FirewallRule"] + # type: (...) -> LROPoller["_models.FirewallRule"] """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.postgresql.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -307,7 +307,7 @@ def get( firewall_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.FirewallRule" + # type: (...) -> "_models.FirewallRule" """Gets information about a server firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -318,10 +318,10 @@ def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.postgresql.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.FirewallRuleListResult"] + # type: (...) -> Iterable["_models.FirewallRuleListResult"] """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.FirewallRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_location_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_location_based_performance_tier_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_location_based_performance_tier_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_location_based_performance_tier_operations.py index 8bc0e96e7ae8..f4dbe3dd35ab 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_location_based_performance_tier_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_location_based_performance_tier_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LocationBasedPerformanceTierOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,17 +50,17 @@ def list( location_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PerformanceTierListResult"] + # type: (...) -> Iterable["_models.PerformanceTierListResult"] """List all the performance tiers at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PerformanceTierListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.PerformanceTierListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PerformanceTierListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_log_files_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_log_files_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_log_files_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_log_files_operations.py index 7cfd67e854e5..60ef797149c1 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_log_files_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_log_files_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LogFilesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.LogFileListResult"] + # type: (...) -> Iterable["_models.LogFileListResult"] """List all the log files in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogFileListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.LogFileListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.LogFileListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LogFileListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.LogFileListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_operations.py index 82cdac638731..2b897906dfb4 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class Operations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -48,15 +48,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> "models.OperationListResult" + # type: (...) -> "_models.OperationListResult" """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.postgresql.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_endpoint_connections_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_endpoint_connections_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_endpoint_connections_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_endpoint_connections_operations.py index 9bb13931b550..5d5a6ad513b3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_endpoint_connections_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_endpoint_connections_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class PrivateEndpointConnectionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -54,7 +54,7 @@ def get( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" + # type: (...) -> "_models.PrivateEndpointConnection" """Gets a private endpoint connection. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -65,10 +65,10 @@ def get( :type private_endpoint_connection_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection + :rtype: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -115,11 +115,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.PrivateEndpointConnection" + parameters, # type: "_models.PrivateEndpointConnection" **kwargs # type: Any ): - # type: (...) -> Optional["models.PrivateEndpointConnection"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] + # type: (...) -> Optional["_models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PrivateEndpointConnection"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -173,10 +173,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.PrivateEndpointConnection" + parameters, # type: "_models.PrivateEndpointConnection" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.PrivateEndpointConnection"] + # type: (...) -> LROPoller["_models.PrivateEndpointConnection"] """Approve or reject a private endpoint connection with a given name. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -186,7 +186,7 @@ def begin_create_or_update( :param private_endpoint_connection_name: :type private_endpoint_connection_name: str :param parameters: - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection + :type parameters: ~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -194,11 +194,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -367,11 +367,11 @@ def _update_tags_initial( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.TagsObject" + parameters, # type: "_models.TagsObject" **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + # type: (...) -> "_models.PrivateEndpointConnection" + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -423,10 +423,10 @@ def begin_update_tags( resource_group_name, # type: str server_name, # type: str private_endpoint_connection_name, # type: str - parameters, # type: "models.TagsObject" + parameters, # type: "_models.TagsObject" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.PrivateEndpointConnection"] + # type: (...) -> LROPoller["_models.PrivateEndpointConnection"] """Updates tags on private endpoint connection. Updates private endpoint connection with the specified tags. @@ -439,7 +439,7 @@ def begin_update_tags( :type private_endpoint_connection_name: str :param parameters: Parameters supplied to the Update private endpoint connection Tags operation. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.TagsObject + :type parameters: ~azure.mgmt.rdbms.postgresql.models.TagsObject :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -447,11 +447,11 @@ def begin_update_tags( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either PrivateEndpointConnection or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnection] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -504,7 +504,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PrivateEndpointConnectionListResult"] + # type: (...) -> Iterable["_models.PrivateEndpointConnectionListResult"] """Gets all private endpoint connections on a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -513,10 +513,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateEndpointConnectionListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateEndpointConnectionListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.PrivateEndpointConnectionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnectionListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_link_resources_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_link_resources_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_link_resources_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_link_resources_operations.py index 95c39d246084..f477d1540b1a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_private_link_resources_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_private_link_resources_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class PrivateLinkResourcesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.PrivateLinkResourceListResult"] + # type: (...) -> Iterable["_models.PrivateLinkResourceListResult"] """Gets the private link resources for PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PrivateLinkResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.PrivateLinkResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -127,7 +127,7 @@ def get( group_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateLinkResource" + # type: (...) -> "_models.PrivateLinkResource" """Gets a private link resource for PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -138,10 +138,10 @@ def get( :type group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.PrivateLinkResource + :rtype: ~azure.mgmt.rdbms.postgresql.models.PrivateLinkResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateLinkResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_recoverable_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_recoverable_servers_operations.py new file mode 100644 index 000000000000..f6a68785e02a --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_recoverable_servers_operations.py @@ -0,0 +1,104 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RecoverableServersOperations(object): + """RecoverableServersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def get( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RecoverableServerResource" + """Gets a recoverable PostgreSQL Server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecoverableServerResource, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.postgresql.models.RecoverableServerResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecoverableServerResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecoverableServerResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/recoverableServers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_replicas_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_replicas_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_replicas_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_replicas_operations.py index 4ba13c151b57..b5f8157b6c6a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_replicas_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_replicas_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class ReplicasOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the replicas for a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -60,10 +60,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_administrators_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_administrators_operations.py similarity index 94% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_administrators_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_administrators_operations.py index abff67d8bbb5..ac3b169a950f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_administrators_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_administrators_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServerAdministratorsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.ServerAdministratorResource" + # type: (...) -> "_models.ServerAdministratorResource" """Gets information about a AAD server administrator. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -62,10 +62,10 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerAdministratorResource, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,11 +110,11 @@ def _create_or_update_initial( self, resource_group_name, # type: str server_name, # type: str - properties, # type: "models.ServerAdministratorResource" + properties, # type: "_models.ServerAdministratorResource" **kwargs # type: Any ): - # type: (...) -> "models.ServerAdministratorResource" - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + # type: (...) -> "_models.ServerAdministratorResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -168,10 +168,10 @@ def begin_create_or_update( self, resource_group_name, # type: str server_name, # type: str - properties, # type: "models.ServerAdministratorResource" + properties, # type: "_models.ServerAdministratorResource" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerAdministratorResource"] + # type: (...) -> LROPoller["_models.ServerAdministratorResource"] """Creates or update active directory administrator on an existing server. The update action will overwrite the existing administrator. @@ -181,7 +181,7 @@ def begin_create_or_update( :type server_name: str :param properties: The required parameters for creating or updating an AAD server administrator. - :type properties: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource + :type properties: ~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -189,11 +189,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerAdministratorResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResource] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResource"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -354,7 +354,7 @@ def list( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerAdministratorResourceListResult"] + # type: (...) -> Iterable["_models.ServerAdministratorResourceListResult"] """Returns a list of server Administrators. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -363,10 +363,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerAdministratorResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerAdministratorResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerAdministratorResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerAdministratorResourceListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerAdministratorResourceListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_based_performance_tier_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_based_performance_tier_operations.py new file mode 100644 index 000000000000..a8980640d61d --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_based_performance_tier_operations.py @@ -0,0 +1,121 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerBasedPerformanceTierOperations(object): + """ServerBasedPerformanceTierOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PerformanceTierListResult"] + """List all the performance tiers for a PostgreSQL server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerformanceTierListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.PerformanceTierListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerformanceTierListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('PerformanceTierListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/performanceTiers'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_keys_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_keys_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_keys_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_keys_operations.py index c7f7584e388d..c61f424026a2 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_keys_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_keys_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServerKeysOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def list( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerKeyListResult"] + # type: (...) -> Iterable["_models.ServerKeyListResult"] """Gets a list of Server keys. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -62,10 +62,10 @@ def list( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerKeyListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKeyListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerKeyListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKeyListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKeyListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -129,7 +129,7 @@ def get( key_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.ServerKey" + # type: (...) -> "_models.ServerKey" """Gets a PostgreSQL Server key. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -140,10 +140,10 @@ def get( :type key_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerKey, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerKey :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -190,11 +190,11 @@ def _create_or_update_initial( server_name, # type: str key_name, # type: str resource_group_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> "models.ServerKey" - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + # type: (...) -> "_models.ServerKey" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -250,10 +250,10 @@ def begin_create_or_update( server_name, # type: str key_name, # type: str resource_group_name, # type: str - parameters, # type: "models.ServerKey" + parameters, # type: "_models.ServerKey" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerKey"] + # type: (...) -> LROPoller["_models.ServerKey"] """Creates or updates a PostgreSQL Server key. :param server_name: The name of the server. @@ -263,7 +263,7 @@ def begin_create_or_update( :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :param parameters: The requested PostgreSQL Server key resource state. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerKey :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -271,11 +271,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerKey or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerKey] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.ServerKey] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerKey"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerKey"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_parameters_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_parameters_operations.py new file mode 100644 index 000000000000..9149f50f2c4e --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_parameters_operations.py @@ -0,0 +1,175 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServerParametersOperations(object): + """ServerParametersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _list_update_configurations_initial( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ConfigurationListResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2017-12-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._list_update_configurations_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(value, 'ConfigurationListResult') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_update_configurations_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/updateConfigurations'} # type: ignore + + def begin_list_update_configurations( + self, + resource_group_name, # type: str + server_name, # type: str + value, # type: "_models.ConfigurationListResult" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ConfigurationListResult"] + """Update a list of configurations in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param value: The parameters for updating a list of server configuration. + :type value: ~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either ConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.ConfigurationListResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._list_update_configurations_initial( + resource_group_name=resource_group_name, + server_name=server_name, + value=value, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ConfigurationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_list_update_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/updateConfigurations'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_security_alert_policies_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_security_alert_policies_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_security_alert_policies_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_security_alert_policies_operations.py index c939bee03844..d99ddeac423c 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_server_security_alert_policies_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_server_security_alert_policies_operations.py @@ -15,7 +15,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -31,14 +31,14 @@ class ServerSecurityAlertPoliciesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,10 +50,10 @@ def get( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] **kwargs # type: Any ): - # type: (...) -> "models.ServerSecurityAlertPolicy" + # type: (...) -> "_models.ServerSecurityAlertPolicy" """Get a server's security alert policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -61,13 +61,13 @@ def get( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the security alert policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.models.SecurityAlertPolicyName :keyword callable cls: A custom type or function that will be passed the direct response :return: ServerSecurityAlertPolicy, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy + :rtype: ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,12 +113,12 @@ def _create_or_update_initial( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] - parameters, # type: "models.ServerSecurityAlertPolicy" + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] + parameters, # type: "_models.ServerSecurityAlertPolicy" **kwargs # type: Any ): - # type: (...) -> Optional["models.ServerSecurityAlertPolicy"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.ServerSecurityAlertPolicy"]] + # type: (...) -> Optional["_models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServerSecurityAlertPolicy"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -171,11 +171,11 @@ def begin_create_or_update( self, resource_group_name, # type: str server_name, # type: str - security_alert_policy_name, # type: Union[str, "models.SecurityAlertPolicyName"] - parameters, # type: "models.ServerSecurityAlertPolicy" + security_alert_policy_name, # type: Union[str, "_models.SecurityAlertPolicyName"] + parameters, # type: "_models.ServerSecurityAlertPolicy" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.ServerSecurityAlertPolicy"] + # type: (...) -> LROPoller["_models.ServerSecurityAlertPolicy"] """Creates or updates a threat detection policy. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -183,9 +183,9 @@ def begin_create_or_update( :param server_name: The name of the server. :type server_name: str :param security_alert_policy_name: The name of the threat detection policy. - :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.SecurityAlertPolicyName + :type security_alert_policy_name: str or ~azure.mgmt.rdbms.postgresql.models.SecurityAlertPolicyName :param parameters: The server security alert policy. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -193,11 +193,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either ServerSecurityAlertPolicy or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerSecurityAlertPolicy] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.ServerSecurityAlertPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerSecurityAlertPolicy"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerSecurityAlertPolicy"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_servers_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_servers_operations.py index 6e036c1b6a75..41b427a0b225 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServersOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,11 +51,11 @@ def _create_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForCreate" + parameters, # type: "_models.ServerForCreate" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ def begin_create( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForCreate" + parameters, # type: "_models.ServerForCreate" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Creates a new server, or will overwrite an existing server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -121,7 +121,7 @@ def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerForCreate + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerForCreate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -129,11 +129,11 @@ def begin_create( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -182,11 +182,11 @@ def _update_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpdateParameters" + parameters, # type: "_models.ServerUpdateParameters" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -238,10 +238,10 @@ def begin_update( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerUpdateParameters" + parameters, # type: "_models.ServerUpdateParameters" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -250,7 +250,7 @@ def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerUpdateParameters + :type parameters: ~azure.mgmt.rdbms.postgresql.models.ServerUpdateParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -258,11 +258,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -421,7 +421,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Server" + # type: (...) -> "_models.Server" """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -430,10 +430,10 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.Server + :rtype: ~azure.mgmt.rdbms.postgresql.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -479,17 +479,17 @@ def list_by_resource_group( resource_group_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -549,15 +549,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_virtual_network_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_virtual_network_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_virtual_network_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_virtual_network_rules_operations.py index 7c1af80ca98c..8c4e0d1299f3 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/operations/_virtual_network_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/operations/_virtual_network_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class VirtualNetworkRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models + :type models: ~azure.mgmt.rdbms.postgresql.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -54,7 +54,7 @@ def get( virtual_network_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.VirtualNetworkRule" + # type: (...) -> "_models.VirtualNetworkRule" """Gets a virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -65,10 +65,10 @@ def get( :type virtual_network_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule + :rtype: ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -115,11 +115,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str virtual_network_rule_name, # type: str - parameters, # type: "models.VirtualNetworkRule" + parameters, # type: "_models.VirtualNetworkRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.VirtualNetworkRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.VirtualNetworkRule"]] + # type: (...) -> Optional["_models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.VirtualNetworkRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -176,10 +176,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str virtual_network_rule_name, # type: str - parameters, # type: "models.VirtualNetworkRule" + parameters, # type: "_models.VirtualNetworkRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.VirtualNetworkRule"] + # type: (...) -> LROPoller["_models.VirtualNetworkRule"] """Creates or updates an existing virtual network rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -189,7 +189,7 @@ def begin_create_or_update( :param virtual_network_rule_name: The name of the virtual network rule. :type virtual_network_rule_name: str :param parameters: The requested virtual Network Rule Resource state. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule + :type parameters: ~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -197,11 +197,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either VirtualNetworkRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -369,7 +369,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.VirtualNetworkRuleListResult"] + # type: (...) -> Iterable["_models.VirtualNetworkRuleListResult"] """Gets a list of virtual network rules in a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -378,10 +378,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VirtualNetworkRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_01_01.models.VirtualNetworkRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.models.VirtualNetworkRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_metadata.json b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_metadata.json deleted file mode 100644 index 8d00b36be24e..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_metadata.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "chosen_version": "2020-01-01", - "total_api_version_list": ["2017-12-01", "2018-06-01", "2020-01-01"], - "client": { - "name": "PostgreSQLManagementClient", - "filename": "_postgre_sql_management_client", - "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model.", - "base_url": "\u0027https://management.azure.com\u0027", - "custom_base_url": null, - "azure_arm": true, - "has_lro_operations": true, - "client_side_validation": false - }, - "global_parameters": { - "sync": { - "credential": { - "signature": "credential, # type: \"TokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "async": { - "credential": { - "signature": "credential, # type: \"AsyncTokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "constant": { - }, - "call": "credential, subscription_id" - }, - "config": { - "credential": true, - "credential_scopes": ["https://management.azure.com/.default"], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null - }, - "operation_groups": { - "servers": "ServersOperations", - "replicas": "ReplicasOperations", - "firewall_rules": "FirewallRulesOperations", - "virtual_network_rules": "VirtualNetworkRulesOperations", - "databases": "DatabasesOperations", - "configurations": "ConfigurationsOperations", - "log_files": "LogFilesOperations", - "server_administrators": "ServerAdministratorsOperations", - "location_based_performance_tier": "LocationBasedPerformanceTierOperations", - "check_name_availability": "CheckNameAvailabilityOperations", - "operations": "Operations", - "server_security_alert_policies": "ServerSecurityAlertPoliciesOperations", - "private_endpoint_connections": "PrivateEndpointConnectionsOperations", - "private_link_resources": "PrivateLinkResourcesOperations", - "server_keys": "ServerKeysOperations" - }, - "operation_mixins": { - }, - "sync_imports": "None", - "async_imports": "None" -} \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_postgre_sql_management_client.py deleted file mode 100644 index d0045159908f..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_postgre_sql_management_client.py +++ /dev/null @@ -1,140 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.mgmt.core import ARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Optional - - from azure.core.credentials import TokenCredential - -from ._configuration import PostgreSQLManagementClientConfiguration -from .operations import ServersOperations -from .operations import ReplicasOperations -from .operations import FirewallRulesOperations -from .operations import VirtualNetworkRulesOperations -from .operations import DatabasesOperations -from .operations import ConfigurationsOperations -from .operations import LogFilesOperations -from .operations import ServerAdministratorsOperations -from .operations import LocationBasedPerformanceTierOperations -from .operations import CheckNameAvailabilityOperations -from .operations import Operations -from .operations import ServerSecurityAlertPoliciesOperations -from .operations import PrivateEndpointConnectionsOperations -from .operations import PrivateLinkResourcesOperations -from .operations import ServerKeysOperations -from . import models - - -class PostgreSQLManagementClient(object): - """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. - - :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ServersOperations - :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ReplicasOperations - :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.FirewallRulesOperations - :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.VirtualNetworkRulesOperations - :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.DatabasesOperations - :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ConfigurationsOperations - :ivar log_files: LogFilesOperations operations - :vartype log_files: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.LogFilesOperations - :ivar server_administrators: ServerAdministratorsOperations operations - :vartype server_administrators: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ServerAdministratorsOperations - :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.LocationBasedPerformanceTierOperations - :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.CheckNameAvailabilityOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.Operations - :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ServerSecurityAlertPoliciesOperations - :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.PrivateEndpointConnectionsOperations - :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.PrivateLinkResourcesOperations - :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.postgresql.v2020_01_01.operations.ServerKeysOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - base_url=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> None - if not base_url: - base_url = 'https://management.azure.com' - self._config = PostgreSQLManagementClientConfiguration(credential, subscription_id, **kwargs) - self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False - self._deserialize = Deserializer(client_models) - - self.servers = ServersOperations( - self._client, self._config, self._serialize, self._deserialize) - self.replicas = ReplicasOperations( - self._client, self._config, self._serialize, self._deserialize) - self.firewall_rules = FirewallRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.virtual_network_rules = VirtualNetworkRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.databases = DatabasesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.configurations = ConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.log_files = LogFilesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_administrators = ServerAdministratorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_performance_tier = LocationBasedPerformanceTierOperations( - self._client, self._config, self._serialize, self._deserialize) - self.check_name_availability = CheckNameAvailabilityOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_endpoint_connections = PrivateEndpointConnectionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_link_resources = PrivateLinkResourcesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_keys = ServerKeysOperations( - self._client, self._config, self._serialize, self._deserialize) - - def close(self): - # type: () -> None - self._client.close() - - def __enter__(self): - # type: () -> PostgreSQLManagementClient - self._client.__enter__() - return self - - def __exit__(self, *exc_details): - # type: (Any) -> None - self._client.__exit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_postgre_sql_management_client.py deleted file mode 100644 index 7d9f429aac3d..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_postgre_sql_management_client.py +++ /dev/null @@ -1,134 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, Optional, TYPE_CHECKING - -from azure.mgmt.core import AsyncARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -from ._configuration import PostgreSQLManagementClientConfiguration -from .operations import ServersOperations -from .operations import ReplicasOperations -from .operations import FirewallRulesOperations -from .operations import VirtualNetworkRulesOperations -from .operations import DatabasesOperations -from .operations import ConfigurationsOperations -from .operations import LogFilesOperations -from .operations import ServerAdministratorsOperations -from .operations import LocationBasedPerformanceTierOperations -from .operations import CheckNameAvailabilityOperations -from .operations import Operations -from .operations import ServerSecurityAlertPoliciesOperations -from .operations import PrivateEndpointConnectionsOperations -from .operations import PrivateLinkResourcesOperations -from .operations import ServerKeysOperations -from .. import models - - -class PostgreSQLManagementClient(object): - """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. - - :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ServersOperations - :ivar replicas: ReplicasOperations operations - :vartype replicas: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ReplicasOperations - :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.FirewallRulesOperations - :ivar virtual_network_rules: VirtualNetworkRulesOperations operations - :vartype virtual_network_rules: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.VirtualNetworkRulesOperations - :ivar databases: DatabasesOperations operations - :vartype databases: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.DatabasesOperations - :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ConfigurationsOperations - :ivar log_files: LogFilesOperations operations - :vartype log_files: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.LogFilesOperations - :ivar server_administrators: ServerAdministratorsOperations operations - :vartype server_administrators: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ServerAdministratorsOperations - :ivar location_based_performance_tier: LocationBasedPerformanceTierOperations operations - :vartype location_based_performance_tier: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.LocationBasedPerformanceTierOperations - :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.CheckNameAvailabilityOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.Operations - :ivar server_security_alert_policies: ServerSecurityAlertPoliciesOperations operations - :vartype server_security_alert_policies: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ServerSecurityAlertPoliciesOperations - :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations - :vartype private_endpoint_connections: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.PrivateEndpointConnectionsOperations - :ivar private_link_resources: PrivateLinkResourcesOperations operations - :vartype private_link_resources: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.PrivateLinkResourcesOperations - :ivar server_keys: ServerKeysOperations operations - :vartype server_keys: azure.mgmt.rdbms.postgresql.v2020_01_01.aio.operations.ServerKeysOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - base_url: Optional[str] = None, - **kwargs: Any - ) -> None: - if not base_url: - base_url = 'https://management.azure.com' - self._config = PostgreSQLManagementClientConfiguration(credential, subscription_id, **kwargs) - self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False - self._deserialize = Deserializer(client_models) - - self.servers = ServersOperations( - self._client, self._config, self._serialize, self._deserialize) - self.replicas = ReplicasOperations( - self._client, self._config, self._serialize, self._deserialize) - self.firewall_rules = FirewallRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.virtual_network_rules = VirtualNetworkRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.databases = DatabasesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.configurations = ConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.log_files = LogFilesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_administrators = ServerAdministratorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.location_based_performance_tier = LocationBasedPerformanceTierOperations( - self._client, self._config, self._serialize, self._deserialize) - self.check_name_availability = CheckNameAvailabilityOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.server_security_alert_policies = ServerSecurityAlertPoliciesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_endpoint_connections = PrivateEndpointConnectionsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.private_link_resources = PrivateLinkResourcesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.server_keys = ServerKeysOperations( - self._client, self._config, self._serialize, self._deserialize) - - async def close(self) -> None: - await self._client.close() - - async def __aenter__(self) -> "PostgreSQLManagementClient": - await self._client.__aenter__() - return self - - async def __aexit__(self, *exc_details) -> None: - await self._client.__aexit__(*exc_details) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/py.typed b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/py.typed deleted file mode 100644 index e5aff4f83af8..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/py.typed +++ /dev/null @@ -1 +0,0 @@ -# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/__init__.py deleted file mode 100644 index c28024c9d5c4..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._postgre_sql_management_client import PostgreSQLManagementClient -__all__ = ['PostgreSQLManagementClient'] - -try: - from ._patch import patch_sdk # type: ignore - patch_sdk() -except ImportError: - pass diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_configuration.py deleted file mode 100644 index e20130157689..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_configuration.py +++ /dev/null @@ -1,70 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any - - from azure.core.credentials import TokenCredential - -VERSION = "unknown" - -class PostgreSQLManagementClientConfiguration(Configuration): - """Configuration for PostgreSQLManagementClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(PostgreSQLManagementClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2020-02-14-preview" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs # type: Any - ): - # type: (...) -> None - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_metadata.json b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_metadata.json deleted file mode 100644 index 39c8d467ef68..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_metadata.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "chosen_version": "2020-02-14-preview", - "total_api_version_list": ["2020-02-14-preview"], - "client": { - "name": "PostgreSQLManagementClient", - "filename": "_postgre_sql_management_client", - "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model.", - "base_url": "\u0027https://management.azure.com\u0027", - "custom_base_url": null, - "azure_arm": true, - "has_lro_operations": true, - "client_side_validation": false - }, - "global_parameters": { - "sync": { - "credential": { - "signature": "credential, # type: \"TokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "async": { - "credential": { - "signature": "credential, # type: \"AsyncTokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The ID of the target subscription.", - "docstring_type": "str", - "required": true - } - }, - "constant": { - }, - "call": "credential, subscription_id" - }, - "config": { - "credential": true, - "credential_scopes": ["https://management.azure.com/.default"], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null - }, - "operation_groups": { - "servers": "ServersOperations", - "firewall_rules": "FirewallRulesOperations", - "configurations": "ConfigurationsOperations", - "check_name_availability": "CheckNameAvailabilityOperations", - "location_based_capabilities": "LocationBasedCapabilitiesOperations", - "virtual_network_subnet_usage": "VirtualNetworkSubnetUsageOperations", - "operations": "Operations" - }, - "operation_mixins": { - }, - "sync_imports": "None", - "async_imports": "None" -} \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/__init__.py deleted file mode 100644 index 97665f586f83..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._postgre_sql_management_client import PostgreSQLManagementClient -__all__ = ['PostgreSQLManagementClient'] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_configuration.py deleted file mode 100644 index 2ae38f080322..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_configuration.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -VERSION = "unknown" - -class PostgreSQLManagementClientConfiguration(Configuration): - """Configuration for PostgreSQLManagementClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - **kwargs: Any - ) -> None: - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(PostgreSQLManagementClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2020-02-14-preview" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'mgmt-rdbms/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs: Any - ) -> None: - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/py.typed b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/py.typed deleted file mode 100644 index e5aff4f83af8..000000000000 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/py.typed +++ /dev/null @@ -1 +0,0 @@ -# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/_configuration.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/_configuration.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/_configuration.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/_postgre_sql_management_client.py similarity index 83% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_postgre_sql_management_client.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/_postgre_sql_management_client.py index f95533b95296..72d038359f15 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/_postgre_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/_postgre_sql_management_client.py @@ -25,6 +25,7 @@ from .operations import LocationBasedCapabilitiesOperations from .operations import VirtualNetworkSubnetUsageOperations from .operations import Operations +from .operations import DatabasesOperations from . import models @@ -32,19 +33,21 @@ class PostgreSQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.postgresql_flexibleservers.operations.ServersOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.postgresql_flexibleservers.operations.FirewallRulesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.postgresql_flexibleservers.operations.ConfigurationsOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.postgresql_flexibleservers.operations.CheckNameAvailabilityOperations :ivar location_based_capabilities: LocationBasedCapabilitiesOperations operations - :vartype location_based_capabilities: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.LocationBasedCapabilitiesOperations + :vartype location_based_capabilities: azure.mgmt.rdbms.postgresql_flexibleservers.operations.LocationBasedCapabilitiesOperations :ivar virtual_network_subnet_usage: VirtualNetworkSubnetUsageOperations operations - :vartype virtual_network_subnet_usage: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.VirtualNetworkSubnetUsageOperations + :vartype virtual_network_subnet_usage: azure.mgmt.rdbms.postgresql_flexibleservers.operations.VirtualNetworkSubnetUsageOperations :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.operations.Operations + :vartype operations: azure.mgmt.rdbms.postgresql_flexibleservers.operations.Operations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.postgresql_flexibleservers.operations.DatabasesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. @@ -85,6 +88,8 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.operations = Operations( self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) def close(self): # type: () -> None diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/__init__.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/__init__.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_configuration.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/_configuration.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_01_01/aio/_configuration.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/_configuration.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_postgre_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/_postgre_sql_management_client.py similarity index 82% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_postgre_sql_management_client.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/_postgre_sql_management_client.py index c2caaa2a7e55..4f6ecc2baff8 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/_postgre_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/_postgre_sql_management_client.py @@ -23,6 +23,7 @@ from .operations import LocationBasedCapabilitiesOperations from .operations import VirtualNetworkSubnetUsageOperations from .operations import Operations +from .operations import DatabasesOperations from .. import models @@ -30,19 +31,21 @@ class PostgreSQLManagementClient(object): """The Microsoft Azure management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model. :ivar servers: ServersOperations operations - :vartype servers: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.ServersOperations + :vartype servers: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.ServersOperations :ivar firewall_rules: FirewallRulesOperations operations - :vartype firewall_rules: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.FirewallRulesOperations + :vartype firewall_rules: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.FirewallRulesOperations :ivar configurations: ConfigurationsOperations operations - :vartype configurations: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.ConfigurationsOperations + :vartype configurations: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.ConfigurationsOperations :ivar check_name_availability: CheckNameAvailabilityOperations operations - :vartype check_name_availability: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.CheckNameAvailabilityOperations + :vartype check_name_availability: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.CheckNameAvailabilityOperations :ivar location_based_capabilities: LocationBasedCapabilitiesOperations operations - :vartype location_based_capabilities: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.LocationBasedCapabilitiesOperations + :vartype location_based_capabilities: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.LocationBasedCapabilitiesOperations :ivar virtual_network_subnet_usage: VirtualNetworkSubnetUsageOperations operations - :vartype virtual_network_subnet_usage: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.VirtualNetworkSubnetUsageOperations + :vartype virtual_network_subnet_usage: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.VirtualNetworkSubnetUsageOperations :ivar operations: Operations operations - :vartype operations: azure.mgmt.rdbms.postgresql.v2020_02_14_preview.aio.operations.Operations + :vartype operations: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.Operations + :ivar databases: DatabasesOperations operations + :vartype databases: azure.mgmt.rdbms.postgresql_flexibleservers.aio.operations.DatabasesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. @@ -82,6 +85,8 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.operations = Operations( self._client, self._config, self._serialize, self._deserialize) + self.databases = DatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) async def close(self) -> None: await self._client.close() diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/__init__.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/__init__.py index 36431bc0ed31..87ee27dc72c6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/__init__.py @@ -13,6 +13,7 @@ from ._location_based_capabilities_operations import LocationBasedCapabilitiesOperations from ._virtual_network_subnet_usage_operations import VirtualNetworkSubnetUsageOperations from ._operations import Operations +from ._databases_operations import DatabasesOperations __all__ = [ 'ServersOperations', @@ -22,4 +23,5 @@ 'LocationBasedCapabilitiesOperations', 'VirtualNetworkSubnetUsageOperations', 'Operations', + 'DatabasesOperations', ] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_check_name_availability_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_check_name_availability_operations.py index 6a5c563b9de2..8a508a3c317a 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class CheckNameAvailabilityOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -42,20 +42,20 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, - name_availability_request: "models.NameAvailabilityRequest", + name_availability_request: "_models.NameAvailabilityRequest", **kwargs - ) -> "models.NameAvailability": + ) -> "_models.NameAvailability": """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_configurations_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_configurations_operations.py index c99cfee5a362..de853b2bd592 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ConfigurationsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,7 +48,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.ConfigurationListResult"]: + ) -> AsyncIterable["_models.ConfigurationListResult"]: """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -57,10 +57,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ConfigurationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -123,7 +123,7 @@ async def get( server_name: str, configuration_name: str, **kwargs - ) -> "models.Configuration": + ) -> "_models.Configuration": """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -134,10 +134,10 @@ async def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -184,10 +184,10 @@ async def _update_initial( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> Optional["models.Configuration"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + ) -> Optional["_models.Configuration"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -241,9 +241,9 @@ async def begin_update( resource_group_name: str, server_name: str, configuration_name: str, - parameters: "models.Configuration", + parameters: "_models.Configuration", **kwargs - ) -> AsyncLROPoller["models.Configuration"]: + ) -> AsyncLROPoller["_models.Configuration"]: """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -253,7 +253,7 @@ async def begin_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -261,11 +261,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_databases_operations.py new file mode 100644 index 000000000000..3c2adc76384f --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_databases_operations.py @@ -0,0 +1,431 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class DatabasesOperations: + """DatabasesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _create_initial( + self, + resource_group_name: str, + server_name: str, + database_name: str, + parameters: "_models.Database", + **kwargs + ) -> Optional["_models.Database"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'Database') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('Database', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + async def begin_create( + self, + resource_group_name: str, + server_name: str, + database_name: str, + parameters: "_models.Database", + **kwargs + ) -> AsyncLROPoller["_models.Database"]: + """Creates a new database or updates an existing database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :param parameters: The required parameters for creating or updating a database. + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either Database or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_initial( + resource_group_name=resource_group_name, + server_name=server_name, + database_name=database_name, + parameters=parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + server_name: str, + database_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + server_name: str, + database_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Deletes a database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + server_name=server_name, + database_name=database_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + async def get( + self, + resource_group_name: str, + server_name: str, + database_name: str, + **kwargs + ) -> "_models.Database": + """Gets information about a database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Database, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def list_by_server( + self, + resource_group_name: str, + server_name: str, + **kwargs + ) -> AsyncIterable["_models.DatabaseListResult"]: + """List all the databases in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DatabaseListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.DatabaseListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_server.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('DatabaseListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_server.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_firewall_rules_operations.py index 85f7ed41e6b9..4c5cb0ab6d51 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class FirewallRulesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -48,10 +48,10 @@ async def _create_or_update_initial( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> Optional["models.FirewallRule"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + ) -> Optional["_models.FirewallRule"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -108,9 +108,9 @@ async def begin_create_or_update( resource_group_name: str, server_name: str, firewall_rule_name: str, - parameters: "models.FirewallRule", + parameters: "_models.FirewallRule", **kwargs - ) -> AsyncLROPoller["models.FirewallRule"]: + ) -> AsyncLROPoller["_models.FirewallRule"]: """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -120,7 +120,7 @@ async def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -128,11 +128,11 @@ async def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -300,7 +300,7 @@ async def get( server_name: str, firewall_rule_name: str, **kwargs - ) -> "models.FirewallRule": + ) -> "_models.FirewallRule": """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -311,10 +311,10 @@ async def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -361,7 +361,7 @@ def list_by_server( resource_group_name: str, server_name: str, **kwargs - ) -> AsyncIterable["models.FirewallRuleListResult"]: + ) -> AsyncIterable["_models.FirewallRuleListResult"]: """List all the firewall rules in a given PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -370,10 +370,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRuleListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_location_based_capabilities_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_location_based_capabilities_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_location_based_capabilities_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_location_based_capabilities_operations.py index 6bb0dfa30c60..3d6c9e41554f 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_location_based_capabilities_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_location_based_capabilities_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -26,14 +26,14 @@ class LocationBasedCapabilitiesOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -45,17 +45,17 @@ def execute( self, location_name: str, **kwargs - ) -> AsyncIterable["models.CapabilitiesListResult"]: + ) -> AsyncIterable["_models.CapabilitiesListResult"]: """Get capabilities at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either CapabilitiesListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CapabilitiesListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.CapabilitiesListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.CapabilitiesListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.CapabilitiesListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_operations.py index 4d693d05c9ce..823666cce7f0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class Operations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,15 +43,15 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, **kwargs - ) -> "models.OperationListResult": + ) -> "_models.OperationListResult": """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_servers_operations.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_servers_operations.py index 7c112280783c..f766f063b3fa 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,14 +28,14 @@ class ServersOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -47,10 +47,10 @@ async def _create_initial( self, resource_group_name: str, server_name: str, - parameters: "models.Server", + parameters: "_models.Server", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -105,9 +105,9 @@ async def begin_create( self, resource_group_name: str, server_name: str, - parameters: "models.Server", + parameters: "_models.Server", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Creates a new server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -115,7 +115,7 @@ async def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -123,11 +123,11 @@ async def begin_create( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -176,10 +176,10 @@ async def _update_initial( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForUpdate", + parameters: "_models.ServerForUpdate", **kwargs - ) -> Optional["models.Server"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + ) -> Optional["_models.Server"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -231,9 +231,9 @@ async def begin_update( self, resource_group_name: str, server_name: str, - parameters: "models.ServerForUpdate", + parameters: "_models.ServerForUpdate", **kwargs - ) -> AsyncLROPoller["models.Server"]: + ) -> AsyncLROPoller["_models.Server"]: """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -242,7 +242,7 @@ async def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerForUpdate + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerForUpdate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -250,11 +250,11 @@ async def begin_update( :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -412,7 +412,7 @@ async def get( resource_group_name: str, server_name: str, **kwargs - ) -> "models.Server": + ) -> "_models.Server": """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -421,10 +421,10 @@ async def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -469,17 +469,17 @@ def list_by_resource_group( self, resource_group_name: str, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -538,15 +538,15 @@ async def get_next(next_link=None): def list( self, **kwargs - ) -> AsyncIterable["models.ServerListResult"]: + ) -> AsyncIterable["_models.ServerListResult"]: """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_virtual_network_subnet_usage_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_virtual_network_subnet_usage_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_virtual_network_subnet_usage_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_virtual_network_subnet_usage_operations.py index 4f6da4753d84..69b1e0b13b17 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/aio/operations/_virtual_network_subnet_usage_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/aio/operations/_virtual_network_subnet_usage_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core.exceptions import ARMErrorFormat -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -25,14 +25,14 @@ class VirtualNetworkSubnetUsageOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -43,21 +43,21 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def execute( self, location_name: str, - parameters: "models.VirtualNetworkSubnetUsageParameter", + parameters: "_models.VirtualNetworkSubnetUsageParameter", **kwargs - ) -> "models.VirtualNetworkSubnetUsageResult": + ) -> "_models.VirtualNetworkSubnetUsageResult": """Get virtual network subnet usage for a given vNet resource id. :param location_name: The name of the location. :type location_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VirtualNetworkSubnetUsageParameter + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.VirtualNetworkSubnetUsageParameter :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkSubnetUsageResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VirtualNetworkSubnetUsageResult + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.VirtualNetworkSubnetUsageResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkSubnetUsageResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkSubnetUsageResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/__init__.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/__init__.py index dcc3073a9ad7..7060fd74fe25 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/__init__.py @@ -11,6 +11,8 @@ from ._models_py3 import CapabilityProperties from ._models_py3 import Configuration from ._models_py3 import ConfigurationListResult + from ._models_py3 import Database + from ._models_py3 import DatabaseListResult from ._models_py3 import DelegatedSubnetUsage from ._models_py3 import ErrorAdditionalInfo from ._models_py3 import ErrorResponse @@ -44,6 +46,8 @@ from ._models import CapabilityProperties # type: ignore from ._models import Configuration # type: ignore from ._models import ConfigurationListResult # type: ignore + from ._models import Database # type: ignore + from ._models import DatabaseListResult # type: ignore from ._models import DelegatedSubnetUsage # type: ignore from ._models import ErrorAdditionalInfo # type: ignore from ._models import ErrorResponse # type: ignore @@ -90,6 +94,8 @@ 'CapabilityProperties', 'Configuration', 'ConfigurationListResult', + 'Database', + 'DatabaseListResult', 'DelegatedSubnetUsage', 'ErrorAdditionalInfo', 'ErrorResponse', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models.py similarity index 85% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models.py index 9eb1a79bab78..77e65c9e57f6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models.py @@ -15,8 +15,7 @@ class CapabilitiesListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of supported capabilities. - :vartype value: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CapabilityProperties] + :vartype value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.CapabilityProperties] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -49,7 +48,7 @@ class CapabilityProperties(msrest.serialization.Model): :vartype zone: str :ivar supported_flexible_server_editions: :vartype supported_flexible_server_editions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerEditionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerEditionCapability] """ _validation = { @@ -72,17 +71,17 @@ def __init__( class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -113,13 +112,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -130,7 +129,7 @@ class Configuration(Resource): :ivar data_type: Data type of the configuration. Possible values include: "Boolean", "Numeric", "Integer", "Enumeration". :vartype data_type: str or - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ConfigurationDataType + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ConfigurationDataType :ivar allowed_values: Allowed values of the configuration. :vartype allowed_values: str :param source: Source of the configuration. @@ -176,7 +175,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -195,6 +194,71 @@ def __init__( self.next_link = kwargs.get('next_link', None) +class Database(Resource): + """Represents a Database. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :param charset: The charset of the database. + :type charset: str + :param collation: The collation of the database. + :type collation: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'charset': {'key': 'properties.charset', 'type': 'str'}, + 'collation': {'key': 'properties.collation', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Database, self).__init__(**kwargs) + self.charset = kwargs.get('charset', None) + self.collation = kwargs.get('collation', None) + + +class DatabaseListResult(msrest.serialization.Model): + """A List of databases. + + :param value: The list of databases housed in a server. + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database] + :param next_link: The link used to get the next page of databases. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Database]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DatabaseListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs.get('next_link', None) + + class DelegatedSubnetUsage(msrest.serialization.Model): """Delegated subnet usage data. @@ -256,7 +320,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -267,10 +331,10 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ErrorResponse] :ivar additional_info: The error additional info. :vartype additional_info: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ErrorAdditionalInfo] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ErrorAdditionalInfo] """ _validation = { @@ -308,13 +372,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -353,7 +417,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -507,12 +571,12 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationDisplay :param is_data_action: Indicates whether the operation is a data action. :type is_data_action: bool :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -588,7 +652,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: Collection of available operation details. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Operation] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Operation] :param next_link: URL client should use to fetch the next page (per server side paging). It's null for now, added for future use. :type next_link: str @@ -609,17 +673,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -643,19 +707,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -694,22 +758,22 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Identity + :type identity: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Identity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -717,30 +781,29 @@ class Server(TrackedResource): creation). :type administrator_login_password: str :param version: PostgreSQL Server version. Possible values include: "12", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerVersion :ivar state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Starting", "Stopping", "Stopped", "Updating". - :vartype state: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerState + :vartype state: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerState :ivar ha_state: A state of a HA server that is visible to user. Possible values include: "NotEnabled", "CreatingStandby", "ReplicatingData", "FailingOver", "Healthy", "RemovingStandby". - :vartype ha_state: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerHAState + :vartype ha_state: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerHAState :ivar fully_qualified_domain_name: The fully qualified domain name of a server. :vartype fully_qualified_domain_name: str :param display_name: The display name of a server. :type display_name: str :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageProfile :ivar public_network_access: public network access is enabled or not. Possible values include: "Enabled", "Disabled". :vartype public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerPublicNetworkAccessState + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerPublicNetworkAccessState :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.MaintenanceWindow :param ha_enabled: stand by count value can be either enabled or disabled. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.HAEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.HAEnabledEnum :param source_server_name: The source PostgreSQL server name to restore from. :type source_server_name: str :param point_in_time_utc: Restore point creation time (ISO8601 format), specifying the time to @@ -755,10 +818,10 @@ class Server(TrackedResource): :vartype byok_enforcement: str :param delegated_subnet_arguments: :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerPropertiesDelegatedSubnetArguments + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerPropertiesDelegatedSubnetArguments :param create_mode: The mode to create a new PostgreSQL server. Possible values include: "Default", "PointInTimeRestore". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.CreateMode :param tags_properties_tags: Application-specific metadata in the form of key-value pairs. :type tags_properties_tags: dict[str, str] """ @@ -842,10 +905,10 @@ class ServerEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_editions: :vartype supported_storage_editions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageEditionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageEditionCapability] :ivar supported_server_versions: :vartype supported_server_versions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerVersionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerVersionCapability] """ _validation = { @@ -876,19 +939,18 @@ class ServerForUpdate(msrest.serialization.Model): :param location: The location the resource resides in. :type location: str :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageProfile :param ha_enabled: stand by count value can be either enabled or disabled. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.HAEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.HAEnabledEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.MaintenanceWindow """ _attribute_map = { @@ -919,7 +981,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of flexible servers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -966,7 +1028,7 @@ class ServerVersionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_vcores: :vartype supported_vcores: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VcoreCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.VcoreCapability] """ _validation = { @@ -998,7 +1060,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: Required. The tier of the particular SKU, e.g. Burstable. Possible values include: "Burstable", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.SkuTier """ _validation = { @@ -1029,7 +1091,7 @@ class StorageEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_mb: :vartype supported_storage_mb: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageMBCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageMBCapability] """ _validation = { @@ -1175,7 +1237,7 @@ class VirtualNetworkSubnetUsageResult(msrest.serialization.Model): :ivar delegated_subnets_usage: :vartype delegated_subnets_usage: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.DelegatedSubnetUsage] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.DelegatedSubnetUsage] """ _validation = { diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models_py3.py similarity index 85% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models_py3.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models_py3.py index 7585149c4d8e..21bca1c9728b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_models_py3.py @@ -20,8 +20,7 @@ class CapabilitiesListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar value: A list of supported capabilities. - :vartype value: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CapabilityProperties] + :vartype value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.CapabilityProperties] :ivar next_link: Link to retrieve next page of results. :vartype next_link: str """ @@ -54,7 +53,7 @@ class CapabilityProperties(msrest.serialization.Model): :vartype zone: str :ivar supported_flexible_server_editions: :vartype supported_flexible_server_editions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerEditionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerEditionCapability] """ _validation = { @@ -77,17 +76,17 @@ def __init__( class Resource(msrest.serialization.Model): - """Resource. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -118,13 +117,13 @@ class Configuration(Resource): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param value: Value of the configuration. :type value: str @@ -135,7 +134,7 @@ class Configuration(Resource): :ivar data_type: Data type of the configuration. Possible values include: "Boolean", "Numeric", "Integer", "Enumeration". :vartype data_type: str or - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ConfigurationDataType + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ConfigurationDataType :ivar allowed_values: Allowed values of the configuration. :vartype allowed_values: str :param source: Source of the configuration. @@ -184,7 +183,7 @@ class ConfigurationListResult(msrest.serialization.Model): """A list of server configurations. :param value: The list of server configurations. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -206,6 +205,77 @@ def __init__( self.next_link = next_link +class Database(Resource): + """Represents a Database. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :param charset: The charset of the database. + :type charset: str + :param collation: The collation of the database. + :type collation: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'charset': {'key': 'properties.charset', 'type': 'str'}, + 'collation': {'key': 'properties.collation', 'type': 'str'}, + } + + def __init__( + self, + *, + charset: Optional[str] = None, + collation: Optional[str] = None, + **kwargs + ): + super(Database, self).__init__(**kwargs) + self.charset = charset + self.collation = collation + + +class DatabaseListResult(msrest.serialization.Model): + """A List of databases. + + :param value: The list of databases housed in a server. + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database] + :param next_link: The link used to get the next page of databases. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Database]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["Database"]] = None, + next_link: Optional[str] = None, + **kwargs + ): + super(DatabaseListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + class DelegatedSubnetUsage(msrest.serialization.Model): """Delegated subnet usage data. @@ -267,7 +337,7 @@ def __init__( class ErrorResponse(msrest.serialization.Model): - """The resource management error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -278,10 +348,10 @@ class ErrorResponse(msrest.serialization.Model): :ivar target: The error target. :vartype target: str :ivar details: The error details. - :vartype details: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ErrorResponse] + :vartype details: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ErrorResponse] :ivar additional_info: The error additional info. :vartype additional_info: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ErrorAdditionalInfo] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ErrorAdditionalInfo] """ _validation = { @@ -319,13 +389,13 @@ class FirewallRule(Resource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param start_ip_address: Required. The start IP address of the server firewall rule. Must be IPv4 format. @@ -367,7 +437,7 @@ class FirewallRuleListResult(msrest.serialization.Model): """A list of firewall rules. :param value: The list of firewall rules in a server. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -537,12 +607,12 @@ class Operation(msrest.serialization.Model): :ivar name: The name of the operation being performed on this particular object. :vartype name: str :ivar display: The localized display information for this particular operation or action. - :vartype display: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationDisplay + :vartype display: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationDisplay :param is_data_action: Indicates whether the operation is a data action. :type is_data_action: bool :ivar origin: The intended executor of the operation. Possible values include: "NotSpecified", "user", "system". - :vartype origin: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationOrigin + :vartype origin: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationOrigin :ivar properties: Additional descriptions for the operation. :vartype properties: dict[str, object] """ @@ -620,7 +690,7 @@ class OperationListResult(msrest.serialization.Model): """A list of resource provider operations. :param value: Collection of available operation details. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Operation] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Operation] :param next_link: URL client should use to fetch the next page (per server side paging). It's null for now, added for future use. :type next_link: str @@ -644,17 +714,17 @@ def __init__( class ProxyResource(Resource): - """The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str """ @@ -678,19 +748,19 @@ def __init__( class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] @@ -732,22 +802,22 @@ class Server(TrackedResource): All required parameters must be populated in order to send to Azure. - :ivar id: Fully qualified resource Id for the resource. Ex - + :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or - Microsoft.Storage/storageAccounts. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str :param tags: A set of tags. Resource tags. :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives. :type location: str :param identity: The Azure Active Directory identity of the server. - :type identity: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Identity + :type identity: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Identity :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Sku :param administrator_login: The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). :type administrator_login: str @@ -755,30 +825,29 @@ class Server(TrackedResource): creation). :type administrator_login_password: str :param version: PostgreSQL Server version. Possible values include: "12", "11". - :type version: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerVersion + :type version: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerVersion :ivar state: A state of a server that is visible to user. Possible values include: "Ready", "Dropping", "Disabled", "Starting", "Stopping", "Stopped", "Updating". - :vartype state: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerState + :vartype state: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerState :ivar ha_state: A state of a HA server that is visible to user. Possible values include: "NotEnabled", "CreatingStandby", "ReplicatingData", "FailingOver", "Healthy", "RemovingStandby". - :vartype ha_state: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerHAState + :vartype ha_state: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerHAState :ivar fully_qualified_domain_name: The fully qualified domain name of a server. :vartype fully_qualified_domain_name: str :param display_name: The display name of a server. :type display_name: str :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageProfile :ivar public_network_access: public network access is enabled or not. Possible values include: "Enabled", "Disabled". :vartype public_network_access: str or - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerPublicNetworkAccessState + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerPublicNetworkAccessState :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.MaintenanceWindow :param ha_enabled: stand by count value can be either enabled or disabled. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.HAEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.HAEnabledEnum :param source_server_name: The source PostgreSQL server name to restore from. :type source_server_name: str :param point_in_time_utc: Restore point creation time (ISO8601 format), specifying the time to @@ -793,10 +862,10 @@ class Server(TrackedResource): :vartype byok_enforcement: str :param delegated_subnet_arguments: :type delegated_subnet_arguments: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerPropertiesDelegatedSubnetArguments + ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerPropertiesDelegatedSubnetArguments :param create_mode: The mode to create a new PostgreSQL server. Possible values include: "Default", "PointInTimeRestore". - :type create_mode: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CreateMode + :type create_mode: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.CreateMode :param tags_properties_tags: Application-specific metadata in the form of key-value pairs. :type tags_properties_tags: dict[str, str] """ @@ -898,10 +967,10 @@ class ServerEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_editions: :vartype supported_storage_editions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageEditionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageEditionCapability] :ivar supported_server_versions: :vartype supported_server_versions: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerVersionCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerVersionCapability] """ _validation = { @@ -932,19 +1001,18 @@ class ServerForUpdate(msrest.serialization.Model): :param location: The location the resource resides in. :type location: str :param sku: The SKU (pricing tier) of the server. - :type sku: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Sku + :type sku: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Sku :param tags: A set of tags. Application-specific metadata in the form of key-value pairs. :type tags: dict[str, str] :param administrator_login_password: The password of the administrator login. :type administrator_login_password: str :param storage_profile: Storage profile of a server. - :type storage_profile: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageProfile + :type storage_profile: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageProfile :param ha_enabled: stand by count value can be either enabled or disabled. Possible values include: "Enabled", "Disabled". - :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.HAEnabledEnum + :type ha_enabled: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.HAEnabledEnum :param maintenance_window: Maintenance window of a server. - :type maintenance_window: - ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.MaintenanceWindow + :type maintenance_window: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.MaintenanceWindow """ _attribute_map = { @@ -983,7 +1051,7 @@ class ServerListResult(msrest.serialization.Model): """A list of servers. :param value: The list of flexible servers. - :type value: list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :type value: list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :param next_link: The link used to get the next page of operations. :type next_link: str """ @@ -1035,7 +1103,7 @@ class ServerVersionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_vcores: :vartype supported_vcores: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VcoreCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.VcoreCapability] """ _validation = { @@ -1067,7 +1135,7 @@ class Sku(msrest.serialization.Model): :type name: str :param tier: Required. The tier of the particular SKU, e.g. Burstable. Possible values include: "Burstable", "GeneralPurpose", "MemoryOptimized". - :type tier: str or ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.SkuTier + :type tier: str or ~azure.mgmt.rdbms.postgresql_flexibleservers.models.SkuTier """ _validation = { @@ -1101,7 +1169,7 @@ class StorageEditionCapability(msrest.serialization.Model): :vartype name: str :ivar supported_storage_mb: :vartype supported_storage_mb: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.StorageMBCapability] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.StorageMBCapability] """ _validation = { @@ -1252,7 +1320,7 @@ class VirtualNetworkSubnetUsageResult(msrest.serialization.Model): :ivar delegated_subnets_usage: :vartype delegated_subnets_usage: - list[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.DelegatedSubnetUsage] + list[~azure.mgmt.rdbms.postgresql_flexibleservers.models.DelegatedSubnetUsage] """ _validation = { diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_postgre_sql_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_postgre_sql_management_client_enums.py similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/models/_postgre_sql_management_client_enums.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/models/_postgre_sql_management_client_enums.py diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/__init__.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/__init__.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/__init__.py index 36431bc0ed31..87ee27dc72c6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/__init__.py @@ -13,6 +13,7 @@ from ._location_based_capabilities_operations import LocationBasedCapabilitiesOperations from ._virtual_network_subnet_usage_operations import VirtualNetworkSubnetUsageOperations from ._operations import Operations +from ._databases_operations import DatabasesOperations __all__ = [ 'ServersOperations', @@ -22,4 +23,5 @@ 'LocationBasedCapabilitiesOperations', 'VirtualNetworkSubnetUsageOperations', 'Operations', + 'DatabasesOperations', ] diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_check_name_availability_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_check_name_availability_operations.py similarity index 90% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_check_name_availability_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_check_name_availability_operations.py index 0d641b4393c7..4893fa8d7f83 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_check_name_availability_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_check_name_availability_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class CheckNameAvailabilityOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -46,21 +46,21 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, - name_availability_request, # type: "models.NameAvailabilityRequest" + name_availability_request, # type: "_models.NameAvailabilityRequest" **kwargs # type: Any ): - # type: (...) -> "models.NameAvailability" + # type: (...) -> "_models.NameAvailability" """Check the availability of name for resource. :param name_availability_request: The required parameters for checking if resource name is available. - :type name_availability_request: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.NameAvailabilityRequest + :type name_availability_request: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.NameAvailabilityRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: NameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.NameAvailability + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.NameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.NameAvailability"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameAvailability"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_configurations_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_configurations_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_configurations_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_configurations_operations.py index b01860a3b745..e895ffe2dfad 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_configurations_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_configurations_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ConfigurationsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -53,7 +53,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ConfigurationListResult"] + # type: (...) -> Iterable["_models.ConfigurationListResult"] """List all the configurations in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -62,10 +62,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfigurationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ConfigurationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ConfigurationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConfigurationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -129,7 +129,7 @@ def get( configuration_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Configuration" + # type: (...) -> "_models.Configuration" """Gets information about a configuration of server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -140,10 +140,10 @@ def get( :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Configuration, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -190,11 +190,11 @@ def _update_initial( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> Optional["models.Configuration"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Configuration"]] + # type: (...) -> Optional["_models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Configuration"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -248,10 +248,10 @@ def begin_update( resource_group_name, # type: str server_name, # type: str configuration_name, # type: str - parameters, # type: "models.Configuration" + parameters, # type: "_models.Configuration" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Configuration"] + # type: (...) -> LROPoller["_models.Configuration"] """Updates a configuration of a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -261,7 +261,7 @@ def begin_update( :param configuration_name: The name of the server configuration. :type configuration_name: str :param parameters: The required parameters for updating a server configuration. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -269,11 +269,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Configuration or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Configuration] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Configuration] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Configuration"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Configuration"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_databases_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_databases_operations.py new file mode 100644 index 000000000000..7c57b3811f18 --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_databases_operations.py @@ -0,0 +1,441 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class DatabasesOperations(object): + """DatabasesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _create_initial( + self, + resource_group_name, # type: str + server_name, # type: str + database_name, # type: str + parameters, # type: "_models.Database" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.Database"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Database"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'Database') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('Database', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def begin_create( + self, + resource_group_name, # type: str + server_name, # type: str + database_name, # type: str + parameters, # type: "_models.Database" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.Database"] + """Creates a new database or updates an existing database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :param parameters: The required parameters for creating or updating a database. + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either Database or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_initial( + resource_group_name=resource_group_name, + server_name=server_name, + database_name=database_name, + parameters=parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + server_name, # type: str + database_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + server_name, # type: str + database_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + server_name=server_name, + database_name=database_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + server_name, # type: str + database_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Database" + """Gets information about a database. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param database_name: The name of the database. + :type database_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Database, or the result of cls(response) + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Database + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Database"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Database', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases/{databaseName}'} # type: ignore + + def list_by_server( + self, + resource_group_name, # type: str + server_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DatabaseListResult"] + """List all the databases in a given server. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DatabaseListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.DatabaseListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DatabaseListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-11-05-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_server.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('DatabaseListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_server.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/databases'} # type: ignore diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_firewall_rules_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_firewall_rules_operations.py similarity index 95% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_firewall_rules_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_firewall_rules_operations.py index b0e476e20d00..70e2cf49564e 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_firewall_rules_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_firewall_rules_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class FirewallRulesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -52,11 +52,11 @@ def _create_or_update_initial( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> Optional["models.FirewallRule"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.FirewallRule"]] + # type: (...) -> Optional["_models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.FirewallRule"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -113,10 +113,10 @@ def begin_create_or_update( resource_group_name, # type: str server_name, # type: str firewall_rule_name, # type: str - parameters, # type: "models.FirewallRule" + parameters, # type: "_models.FirewallRule" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.FirewallRule"] + # type: (...) -> LROPoller["_models.FirewallRule"] """Creates a new firewall rule or updates an existing firewall rule. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -126,7 +126,7 @@ def begin_create_or_update( :param firewall_rule_name: The name of the server firewall rule. :type firewall_rule_name: str :param parameters: The required parameters for creating or updating a firewall rule. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -134,11 +134,11 @@ def begin_create_or_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FirewallRule or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -309,7 +309,7 @@ def get( firewall_rule_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.FirewallRule" + # type: (...) -> "_models.FirewallRule" """List all the firewall rules in a given server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -320,10 +320,10 @@ def get( :type firewall_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FirewallRule, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRule + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRule :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRule"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRule"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -371,7 +371,7 @@ def list_by_server( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.FirewallRuleListResult"] + # type: (...) -> Iterable["_models.FirewallRuleListResult"] """List all the firewall rules in a given PostgreSQL server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -380,10 +380,10 @@ def list_by_server( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either FirewallRuleListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.FirewallRuleListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.FirewallRuleListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FirewallRuleListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FirewallRuleListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_location_based_capabilities_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_location_based_capabilities_operations.py similarity index 93% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_location_based_capabilities_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_location_based_capabilities_operations.py index bfa6cc09a56e..79264b3e42d0 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_location_based_capabilities_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_location_based_capabilities_operations.py @@ -14,7 +14,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,14 +30,14 @@ class LocationBasedCapabilitiesOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -50,17 +50,17 @@ def execute( location_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.CapabilitiesListResult"] + # type: (...) -> Iterable["_models.CapabilitiesListResult"] """Get capabilities at specified location in a given subscription. :param location_name: The name of the location. :type location_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either CapabilitiesListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.CapabilitiesListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.CapabilitiesListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.CapabilitiesListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.CapabilitiesListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_operations.py similarity index 91% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_operations.py index 674bea02ead0..31e7a96a1723 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class Operations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -48,15 +48,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> "models.OperationListResult" + # type: (...) -> "_models.OperationListResult" """Lists all of the available REST API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: OperationListResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.OperationListResult + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.OperationListResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_servers_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_servers_operations.py similarity index 96% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_servers_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_servers_operations.py index c9bb95063b1e..0b4a2ada01be 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_servers_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_servers_operations.py @@ -16,7 +16,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,14 +32,14 @@ class ServersOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,11 +51,11 @@ def _create_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.Server" + parameters, # type: "_models.Server" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -110,10 +110,10 @@ def begin_create( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.Server" + parameters, # type: "_models.Server" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Creates a new server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -121,7 +121,7 @@ def begin_create( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -129,11 +129,11 @@ def begin_create( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -182,11 +182,11 @@ def _update_initial( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForUpdate" + parameters, # type: "_models.ServerForUpdate" **kwargs # type: Any ): - # type: (...) -> Optional["models.Server"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.Server"]] + # type: (...) -> Optional["_models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.Server"]] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -238,10 +238,10 @@ def begin_update( self, resource_group_name, # type: str server_name, # type: str - parameters, # type: "models.ServerForUpdate" + parameters, # type: "_models.ServerForUpdate" **kwargs # type: Any ): - # type: (...) -> LROPoller["models.Server"] + # type: (...) -> LROPoller["_models.Server"] """Updates an existing server. The request body can contain one to many of the properties present in the normal server definition. @@ -250,7 +250,7 @@ def begin_update( :param server_name: The name of the server. :type server_name: str :param parameters: The required parameters for updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerForUpdate + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerForUpdate :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: True for ARMPolling, False for no polling, or a @@ -258,11 +258,11 @@ def begin_update( :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either Server or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -423,7 +423,7 @@ def get( server_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.Server" + # type: (...) -> "_models.Server" """Gets information about a server. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -432,10 +432,10 @@ def get( :type server_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: Server, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.Server + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.Server :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.Server"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Server"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -481,17 +481,17 @@ def list_by_resource_group( resource_group_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given resource group. :param resource_group_name: The name of the resource group. The name is case insensitive. :type resource_group_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } @@ -551,15 +551,15 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> Iterable["models.ServerListResult"] + # type: (...) -> Iterable["_models.ServerListResult"] """List all the servers in a given subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ServerListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.ServerListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.rdbms.postgresql_flexibleservers.models.ServerListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.ServerListResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServerListResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_virtual_network_subnet_usage_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_virtual_network_subnet_usage_operations.py similarity index 89% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_virtual_network_subnet_usage_operations.py rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_virtual_network_subnet_usage_operations.py index 7fae455cfff8..f32167995119 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql/v2020_02_14_preview/operations/_virtual_network_subnet_usage_operations.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/operations/_virtual_network_subnet_usage_operations.py @@ -13,7 +13,7 @@ from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.mgmt.core.exceptions import ARMErrorFormat -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,14 +29,14 @@ class VirtualNetworkSubnetUsageOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models + :type models: ~azure.mgmt.rdbms.postgresql_flexibleservers.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -47,22 +47,22 @@ def __init__(self, client, config, serializer, deserializer): def execute( self, location_name, # type: str - parameters, # type: "models.VirtualNetworkSubnetUsageParameter" + parameters, # type: "_models.VirtualNetworkSubnetUsageParameter" **kwargs # type: Any ): - # type: (...) -> "models.VirtualNetworkSubnetUsageResult" + # type: (...) -> "_models.VirtualNetworkSubnetUsageResult" """Get virtual network subnet usage for a given vNet resource id. :param location_name: The name of the location. :type location_name: str :param parameters: The required parameters for creating or updating a server. - :type parameters: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VirtualNetworkSubnetUsageParameter + :type parameters: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.VirtualNetworkSubnetUsageParameter :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetworkSubnetUsageResult, or the result of cls(response) - :rtype: ~azure.mgmt.rdbms.postgresql.v2020_02_14_preview.models.VirtualNetworkSubnetUsageResult + :rtype: ~azure.mgmt.rdbms.postgresql_flexibleservers.models.VirtualNetworkSubnetUsageResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.VirtualNetworkSubnetUsageResult"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.VirtualNetworkSubnetUsageResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/py.typed b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/py.typed similarity index 100% rename from sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/v2020_07_01_privatepreview/py.typed rename to sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/postgresql_flexibleservers/py.typed diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure_mgmt_rdbms-1.9.0-py2.py3-none-any.whl b/sdk/rdbms/azure-mgmt-rdbms/azure_mgmt_rdbms-1.9.0-py2.py3-none-any.whl deleted file mode 100644 index 73288a5eb8c78ed0a1d1e6cb58d2d0b57582905d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254031 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