openapi: 3.0.1 info: contact: email: support@aiven.io name: Aiven support team url: https://aiven.io/support-services title: Aiven API Documentation Account Upgrade_pipeline API version: v1 x-logo: altText: Aiven logo backgroundColor: '#fafafa' href: https://api.aiven.io/doc url: https://aiven.io/assets/img/aiven-logo.png description: "# Introduction\n\n[Direct link to openapi.json](https://api.aiven.io/doc/openapi.json) for use with external tools\n\n[Aiven](https://aiven.io) is a modern fully-managed open source data platform for streaming, storing, and analyzing data on any public cloud. On Aiven Platform, you can operate your data infrastructure with a few devops tools: [Aiven Console](https://console.aiven.io/), [Aiven Terraform Provider](https://aiven.io/docs/tools/terraform), [Aiven CLI](https://github.com/aiven/aiven-client), and [Aiven Operator for Kubernetes](https://github.com/aiven/aiven-operator). All of them are built on an open secure powerful REST API for integration with custom tooling.\n\nThe Aiven [REST](http://en.wikipedia.org/wiki/Representational_State_Transfer) API\nprovides programmatic access to Aiven.io services. To call the Aiven API, you can use either CLI tools (for example, `cURL` or [Aiven CLI client](https://aiven.io/docs/tools/cli)) or GUI tools, such as the [Aiven public API Postman collection](https://www.postman.com/aiven-apis).\n\nThis Aiven API documentation will help you operate your Aiven organization, projects, or services programmatically by integrating your applications and processes with Aiven.\n\n# Description\n\nAiven's APIs ([Application Programming Interfaces](https://en.wikipedia.org/wiki/API)) power its platform for data management. Aiven has a number of REST APIs that can help you build strong and robust data infrastructure for your applications.\n\nThe Aiven API is organized around core resources. Each core resource has multiple endpoints, which can be interacted with using different HTTP methods.\n\n## Core resources\n\n### Platform APIs\n\n
\n
Account
\n
Operations on the organization level related to accounts, projects, teams, users, invites, billing groups, payment methods, credit cards, authentication methods, and more
\n
User
\n
Operations related to users and users' profiles, access, authentication, authorization, user management, and more
\n
Project
\n
General operations on projects related to users, VPCs, invitations, alerts, peering connections, and more
\n
BillingGroup
\n
Operation on invoices, billing groups' credits and events
\n
Support ticket
\n
Operations on support tickets: listing, creating, looping users in
\n
\n\n### Services APIs\n\n
\n
Service
\n
All general (non-service-specific) operations on the service level: service creation, termination, configuration, updates, information retrieval, reset, and more
\n
Service Integrations
\n
Operations related to integrating services and managing service integrations
\n
Service: ClickHouse
\n
ClickHouse-specific operations on queries and databases
\n
Service: Flink
\n
Operations on Flink queries, jobs, and applications
\n
Service: Kafka
\n
Kafka and Kafka Connect specific operations on connectors, ACL entries, quotas, topics, topic messages, schema registry, and more
\n
Service: Kafka MirrorMaker
\n
Operations on replication flows
\n
Service: MySQL
\n
Fetching service query statistics
\n
Service: OpenSearch
\n
Operations on ACL configuration, security administration and configuration
\n
Service: PostgreSQL
\n
Operations on extensions, service query statistics, and connection pools
\n
\n\n# Requests\n\nThere are multiple ways you can interact with the Aiven API over HTTP. You can access it by sending requests from a client (for example, a web browser) to the Aiven's server. In this API reference, you'll find code examples of how to do that using `cURL` and a few different client libraries (programming languages).\n\nTo send an API request, you need to specify the following:\n\n* HTTP method\n* Path\n* Request headers\n\n Typically, `content-type` needs to be set to `application/json`: `content-type: application/json`. There are a few exceptions though.\n\n* Path, query, or body parameters (either required or optional).\n\n```bash\ncurl --request POST \\\n --url https://api.aiven.io/v1/project/{project}/vpcs \\\n --header 'Authorization: aivenv1 REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data\n '{\n \"cloud_name\": \"string\",\n \"network_cidr\": \"string\",\n \"peering_connections\": [\n {\n \"peer_azure_app_id\": \"string\",\n \"peer_azure_tenant_id\": \"string\",\n \"peer_cloud_account\": \"string\",\n \"peer_region\": \"string\",\n \"peer_resource_group\": \"string\",\n \"peer_vpc\": \"string\",\n \"user_peer_network_cidrs\": [\n \"string\"\n ]\n }\n ]\n }'\n```\n\n# Responses\n\nUpon receiving and processing a request, the Aiven API returns the response status code, response headers, and a response body in the `JSON` format. Response bodies include different properties, which can be either required or optional, for example, the ``message`` property, which is an optional human-readable information on the result of the action (deleted, created, or updated).\n\n```json\n{\n \"cloud_name\": \"string\",\n \"create_time\": \"string\",\n \"message\": \"string\",\n \"network_cidr\": \"string\",\n \"peering_connections\": [\n { ... }\n ],\n \"pending_build_only_peering_connections\": \"string\",\n \"project_vpc_id\": \"string\",\n \"state\": \"ACTIVE\",\n \"update_time\": \"string\"\n}\n```\n\n## Successful responses\n\nA successful API response returns an HTTP result code between 200 and 299.\n\nExample of the ``created`` response\n\n```json\n {\n \"service\": {\n \"service_name\": \"foobar\",\n ...\n }\n }\n```\n\n## Failed responses\n\nA failed API response returns a HTTP code greater or equal to 400. Additionally, the response may return a list of errors in the response body as JSON, for example\n\n```json\n{\n \"errors\": [\n {\n \"error_code\": \"authentication_failed\",\n \"message\": \"Authentication failed\",\n \"status\": 403,\n \"metadata\": {\n ...\n }\n }\n ],\n \"message\": \"Authentication failed\"\n}\n```\n\n> For information on errors' properties and error codes, check [Errors](/doc/openapi/openapi-description#errors).\n\n# Get started\n\nCheck out how to start using the Aiven API either in [API quick start](https://aiven.io/docs/tools/api#api-quickstart) or [Your first API call](https://aiven.io/blog/your-first-aiven-api-call).\n\n## Authentication\n\n\n\n# Errors\n\nWhen working with the Aiven API, you may encounter different error responses when you attempt to perform operations that can fail. For example, trying to enable writes for a database that has been powered off would lead to the following error response:\n\n```json\n{\n \"errors\": [\n {\n \"error_code\": \"not_powered\",\n \"message\": \"Database not powered on\",\n \"status\": 409\n }\n ],\n \"message\": \"Database not powered on\"\n}\n```\n\n## Check a response for errors\n\nIf a request fails with a HTTP code greater or equal to 400, it returns a list of errors in the response body as JSON. `errors` objects are embedded in the failed API responses.\n\n```json\n{\n \"errors\": [\n {\n \"error_code\": \"account_not_found\",\n \"message\": \"Account does not exist\",\n \"status\": 404\n }\n ],\n \"message\": \"Account does not exist\"\n}\n```\n\n## Errors' properties\n\nIn an API response, one or more errors may be included in the ``errors`` array of objects. Each error object may contain a few properties:\n\n* ``status`` (required) is an HTTP error code, which can be used to programmatically identify the error type.\n\n * ``200`` <= ``status``< ``300`` means a successful request.\n * ``300`` <= ``status`` <= ``500`` means a failed request.\n\n ``errors`` can have the following HTTPS status codes:\n\n * 200 - OK\n * 201 - Created\n * 400 - Bad Request\n * 401 - Unauthorized\n * 403 - Forbidden\n * 404 - Not found\n * 405 - Method Not Allowed\n * 409 - Conflict\n * 500 - Internal Server Error\n\n* ``message`` (required) is human-readable information on the error.\n* ``error_code`` is a machine-readable information on the error (see [Error codes](/doc/openapi/openapi-description#error-codes)).\n\n## Error codes\n\nMachine-readable ``error_code`` fields are progressively added to Aiven endpoints to allow you to identify different failure cases programmatically. Currently, the supported values are the following:\n\n- `account_already_exists`\n- `account_already_has_organization`\n- `account_and_project_do_not_match`\n- `account_and_project_must_belong_same_tenant`\n- `account_cannot_be_own_ancestor`\n- `account_must_have_enabled_authentication_method`\n- `account_not_found`\n- `account_team_not_found`\n- `account_unit_cannot_create_for_personal_tier`\n- `account_unit_cannot_have_billing_group`\n- `account_with_child_accounts_cannot_be_deleted`\n- `account_with_projects_cannot_be_deleted`\n- `action_forbidden_for_application_users`\n- `action_forbidden_for_managed_users`\n- `action_forbidden_for_marketplace_users`\n- `action_forbidden_for_scim_users`\n- `action_forbidden_for_timescale_users`\n- `action_forbidden_missing_governance_usergroup`\n- `action_forbidden_on_application_users`\n- `action_forbidden_on_topic_request`\n- `action_forbidden_on_unmanaged_users`\n- `acu_billing_not_allowed`\n- `address_already_belongs_to_organization`\n- `address_in_use`\n- `address_not_found`\n- `api_client_ip_allowlist_blocks_caller`\n- `approval_forbidden_on_topic_request`\n- `approval_missing_on_request`\n- `auth_token_max_age_too_low`\n- `authentication_method_disable_current_not_allowed`\n- `authentication_method_does_not_allow_auto_join_user_group`\n- `authentication_method_limit_reached`\n- `authentication_method_not_found`\n- `backup_failed`\n- `bad_request`\n- `billing_address_not_found`\n- `billing_customer_id_not_found`\n- `billing_group_not_found`\n- `billing_group_organization_active_trial`\n- `billing_group_owning_account_must_be_organization`\n- `billing_metronome_support_contract_not_found`\n- `ca_version_not_in_sequence`\n- `cannot_delete_active_managed_users`\n- `cannot_delete_users_with_organizations_memberships`\n- `cannot_move_project_not_assigned_to_organization`\n- `cannot_remove_managed_users_from_organization`\n- `cannot_set_groups_managed_by_scim_as_auto_join_group`\n- `client_ip_address_policy_violation`\n- `credit_card_not_found`\n- `credit_memo_not_found`\n- `custom_cloud_environment_cloud_not_supported`\n- `custom_cloud_environment_internal`\n- `custom_cloud_environment_invalid_iam_role_arn`\n- `custom_cloud_environment_missing_configuration`\n- `custom_cloud_environment_not_found`\n- `custom_cloud_environment_region_not_supported`\n- `database_not_found`\n- `decline_forbidden_on_topic_request`\n- `deleting_forbidden_on_governance_request`\n- `deleting_forbidden_on_topic_request`\n- `discount_not_found`\n- `feature_not_enabled`\n- `free_plans_in_high_demand_and_unavailable`\n- `free_tier_restricted`\n- `free_trial_extensions_not_available`\n- `free_trial_max_extended`\n- `free_trial_not_active`\n- `free_trial_not_available`\n- `governance_access_no_permission_on_project`\n- `governance_access_not_found`\n- `governance_configuration_already_exists`\n- `governance_configuration_not_found`\n- `governance_group_not_found`\n- `governance_invalid_service_type`\n- `governance_request_already_in_progress`\n- `governance_request_deleted`\n- `idp_no_domains_linked`\n- `index_close_failed`\n- `index_not_found`\n- `internal_server_error`\n- `invalid_backup_configuration`\n- `invalid_cmk_id`\n- `invalid_currency_code`\n- `invalid_date_format`\n- `invalid_email_format`\n- `invalid_governance_group_provided`\n- `invalid_kafka_topic_request_type`\n- `invalid_os_migration_command`\n- `invalid_owner_user_group`\n- `invalid_private_access_settings`\n- `invalid_scim_user_state_update`\n- `invalid_service_type`\n- `invalid_vcs_type`\n- `invitation_expired`\n- `invitation_not_found`\n- `invoice_lines_not_supported`\n- `invoice_not_found`\n- `ip_address_not_present`\n- `ip_address_not_valid`\n- `kafka_acl_not_supported`\n- `kafka_console_governance_enabled`\n- `kafka_governance_not_available`\n- `kafka_governance_not_enabled`\n- `kafka_governance_policy_incomplete`\n- `kafka_partition_reassignment_in_progress`\n- `kafka_policy_violation`\n- `kafka_service_unavailable`\n- `kafka_terraform_governance_enabled`\n- `kafka_topic_already_exists`\n- `kafka_topic_invalid_config`\n- `kafka_topic_not_found`\n- `kafka_topic_not_synchronized`\n- `kafka_topic_queued_for_deletion`\n- `kafka_topic_reserved`\n- `marketplace_aws_customer_or_product_details_not_found`\n- `marketplace_subscription_already_linked_to_organization`\n- `marketplace_subscription_link_expired`\n- `marketplace_subscription_no_access`\n- `metadata_validation_failed`\n- `mfa_required_by_organization`\n- `mp_account_with_active_subscription_deleted`\n- `mp_account_with_commitment_deleted`\n- `mp_account_with_support_contract_deleted`\n- `mp_subscription_not_found`\n- `nested_account_cannot_have_authentication_method`\n- `nested_account_cannot_have_user_groups`\n- `new_subnet_id_required`\n- `no_failed_os_migration`\n- `node_prune_version_not_updated`\n- `not_powered`\n- `opensearch_delete_system_index`\n- `opensearch_internal_server_error`\n- `opensearch_service_unavailable`\n- `opensearch_too_many_requests`\n- `optimization_failed`\n- `optimization_not_found`\n- `organization_aiven_enterprise_contract_denied`\n- `organization_aiven_enterprise_contract_feature_denied`\n- `organization_aiven_enterprise_denied`\n- `organization_aiven_enterprise_organization_required`\n- `organization_cannot_exist_without_root_account`\n- `organization_domain_already_linked`\n- `organization_domain_not_found`\n- `organization_domain_not_root`\n- `organization_domain_verification_failed`\n- `organization_has_active_addresses`\n- `organization_has_active_payment_methods`\n- `organization_kafka_topics_invalid_filters`\n- `organization_mismatch`\n- `organization_must_have_one_super_admin`\n- `organization_not_found`\n- `organization_pending_support_contract_already_exists`\n- `organization_support_contract_tier_not_supported`\n- `organization_tier_downgrade_not_allowed`\n- `organization_user_not_found`\n- `orphaned_project_not_allowed`\n- `parent_account_cannot_be_own_ancestor`\n- `parent_account_not_found`\n- `parent_account_tenant_invalid`\n- `parent_account_too_deep`\n- `payment_method_not_found`\n- `permission_denied`\n- `pg_editor_readonly_violation`\n- `pg_pool_already_exists`\n- `pg_pool_invalid_database`\n- `pg_pool_invalid_name`\n- `pg_pool_not_found`\n- `pg_pool_not_supported`\n- `pg_pool_pinned_pools_not_enabled`\n- `pg_pool_requires_pinned_pools`\n- `pg_pool_too_big`\n- `pg_pool_too_many`\n- `pg_publication_not_found`\n- `pg_replication_slot_not_found`\n- `pg_scram_not_allowed`\n- `project_account_not_active`\n- `project_already_exists`\n- `project_belongs_to_account_billing_group_must_use_api`\n- `project_does_not_exist`\n- `project_has_no_such_user`\n- `project_limitation_not_found`\n- `project_move_invalid`\n- `project_move_organizations_internal_config_not_match`\n- `project_not_found`\n- `project_without_billing_group_must_be_assigned_from_account`\n- `query_validation_failed`\n- `replication_already_exists`\n- `replication_config_invalid`\n- `replication_not_found`\n- `replication_service_not_found`\n- `repository_not_found`\n- `request_already_exists`\n- `request_forbidden`\n- `request_not_found`\n- `request_operation_already_exists`\n- `request_operation_not_found`\n- `resource_managed_by_governance`\n- `resource_managed_by_scim`\n- `resource_not_managed_by_scim`\n- `retired_api_endpoint`\n- `root_account_required`\n- `same_organization_required`\n- `schema_insights_failed`\n- `service_acl_not_found`\n- `service_acl_too_many`\n- `service_does_not_exist`\n- `service_governance_not_enabled`\n- `service_integration_endpoint_not_found`\n- `service_integration_not_found`\n- `service_integration_project_mismatch_source_destination`\n- `service_is_upgrade_pipeline_source`\n- `service_logs_backend_timeout`\n- `service_logs_backend_unavailable`\n- `service_maintenance_required`\n- `service_not_found`\n- `service_type_not_allowed`\n- `service_type_version_pin_locked`\n- `shipping_address_not_found`\n- `signup_welcome_invalid_key`\n- `snapshot_creation_failed`\n- `snapshot_deletion_failed`\n- `snapshot_not_found`\n- `snapshot_restoration_failed`\n- `stripe_customer_owning_account_must_be_organization`\n- `support_contract_and_account_must_be_in_same_organization`\n- `support_contract_earliest_cancellation_date_later_than_end_date`\n- `support_contract_must_have_billing_group`\n- `support_contract_null_tier`\n- `team_limit_exceeded`\n- `team_names_must_be_unique`\n- `tenant_mismatch`\n- `topic_not_found`\n- `unable_to_parse_query`\n- `unit_cannot_be_moved_out_of_organization`\n- `unknown_user_sso_login_attempt`\n- `unsupported_resource_type`\n- `upgrade_pipeline_no_nodes`\n- `upgrade_pipeline_no_validation`\n- `upgrade_pipeline_not_enabled_for_project`\n- `upgrade_pipeline_service_not_destination`\n- `upgrade_pipeline_service_not_found`\n- `upgrade_step_destination_already_has_source`\n- `upgrade_step_destination_service_not_found`\n- `upgrade_step_exceeds_max_chain_length`\n- `upgrade_step_not_found`\n- `upgrade_step_service_type_mismatch`\n- `upgrade_step_source_service_not_found`\n- `upgrade_step_unsupported_service_type`\n- `upgrade_step_validation_not_possible_due_to_service_state`\n- `upgrade_step_would_create_cycle`\n- `upgrade_validation_already_exists`\n- `user_already_in_organization`\n- `user_already_invited_to_organization`\n- `user_cant_login`\n- `user_config_2fa_otp_verification_failed`\n- `user_deactivated`\n- `user_domain_does_not_belong_to_organization_or_no_linked_auth_method`\n- `user_group_names_must_be_unique`\n- `user_group_not_found`\n- `user_groups_belong_to_different_accounts`\n- `user_groups_must_be_from_same_account`\n- `user_has_no_access_to_billing_info`\n- `user_has_no_access_to_project_with_current_authentication_method`\n- `user_has_to_sign_in_with_non_account_authentication_method`\n- `user_has_too_many_disk_addition_requests`\n- `user_is_internal_user`\n- `user_not_account_owner`\n- `user_not_account_owner_of_billing_group`\n- `user_not_account_owner_of_parent_account`\n- `user_not_admin_of_account_billing_group`\n- `user_not_application_user`\n- `user_not_found`\n- `user_not_managed_by_organization`\n- `user_not_organization_admin`\n- `user_not_signed_in_with_account_authentication_method`\n- `user_oauth_authentication_method_not_allowed`\n- `user_password_authentication_method_not_allowed`\n- `user_password_compromised`\n- `user_password_not_found`\n- `user_personal_token_allowed_authentication_methods_cannot_be_disabled`\n- `user_personal_token_not_allowed`\n- `user_personal_tokens_cannot_be_disabled`\n- `user_role_not_allowed_to_perform_operation`\n- `user_saml_authentication_method_not_allowed`\n- `user_weblink_action_expired`\n- `username_is_invalid`\n- `username_is_reserved`\n- `users_belong_to_different_tenant_from_user_group_account`\n- `vcs_integration_installation_not_found_or_not_accessible`\n- `vcs_integration_not_found`\n- `vpc_id_and_subnet_id_required`\n- `webhook_invalid_event_data`\n- `webhook_unauthorized`\n" servers: - url: https://api.aiven.io/v1 tags: - name: Upgrade_pipeline x-displayName: Upgrade pipeline paths: /organization/{organization_id}/upgrade-pipeline/steps: post: summary: Create an upgrade step tags: - Upgrade_pipeline operationId: UpgradePipelineStepCreate description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

Customer must have write access to both source and destination projects (read-only is not enough). Both services must belong to the organization in the URL (and thus the same organization). Initial validation is seeded based on the destination service type pinned release.

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/organization_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepCreateRequestBody' example: auto_validation_delay_days: 7 destination_project_name: prod-project destination_service_name: pg-prod source_project_name: dev-project source_service_name: pg-dev responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepCreateResponse' '403': description: Upgrade pipeline is not enabled for the destination project content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_pipeline_not_enabled_for_project title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_pipeline_not_enabled_for_project: Upgrade pipeline is not enabled for the destination project' '404': description: Project not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - project_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'project_not_found: Project not found' '409': description: Destination already has a source content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_step_destination_already_has_source title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_step_destination_already_has_source: Destination service already has a source service' security: - tokenAuth: [] oauth2: - accounts:read - projects:write get: summary: List upgrade steps tags: - Upgrade_pipeline operationId: UpgradePipelineStepList description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

List upgrade steps in the organization.

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/organization_id' - $ref: '#/components/parameters/upgradepipelinesteplist_cursor' - $ref: '#/components/parameters/upgradepipelinesteplist_limit' - $ref: '#/components/parameters/upgradepipelinesteplist_source_project_name' - $ref: '#/components/parameters/upgradepipelinesteplist_source_service_name' - $ref: '#/components/parameters/upgradepipelinesteplist_destination_project_name' - $ref: '#/components/parameters/upgradepipelinesteplist_destination_service_name' responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepListResponse' '404': description: Organization not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - organization_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'organization_not_found: Organization not found.' security: - tokenAuth: [] oauth2: - accounts:read - projects:read /organization/{organization_id}/upgrade-pipeline/steps/{step_id}: delete: summary: Delete an upgrade step tags: - Upgrade_pipeline operationId: UpgradePipelineStepDelete description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

Customer must have write access to both source and destination projects (read-only is not enough). Both services must belong to the organization in the URL (and thus the same organization).

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/organization_id' - $ref: '#/components/parameters/step_id' responses: '204': description: Delete an upgrade step content: {} '404': description: Upgrade step not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_step_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_step_not_found: Upgrade step not found' security: - tokenAuth: [] oauth2: - accounts:read - projects:write get: summary: Get details of a specific upgrade step tags: - Upgrade_pipeline operationId: UpgradePipelineStepGet description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

Customer must have access to both source and destination projects.

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/organization_id' - $ref: '#/components/parameters/step_id' responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepGetResponse' '404': description: Upgrade step not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_step_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_step_not_found: Upgrade step not found' security: - tokenAuth: [] oauth2: - accounts:read - projects:read patch: summary: Update an upgrade step tags: - Upgrade_pipeline operationId: UpgradePipelineStepUpdate description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

Customer must have write access to both source and destination projects (read-only is not enough). Both services must belong to the organization in the URL (and thus the same organization). The new auto validation delay in days must be greater than zero.

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/organization_id' - $ref: '#/components/parameters/step_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepUpdateRequestBody' example: auto_validation_delay_days: 7 responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepUpdateResponse' '404': description: Upgrade step not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_step_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_step_not_found: Upgrade step not found' security: - tokenAuth: [] oauth2: - accounts:read - projects:write /project/{project}/service/{service_name}/upgrade-validation: post: summary: Validate upgrade step tags: - Upgrade_pipeline operationId: UpgradePipelineStepValidate description: '

This endpoint may be changed or removed at any time. Don''t use it in production environments.

Validate maintenance level currently running on the given service, unblocking it for any service(s) that are targets of a upgrade pipeline step with this service as the source service. This allows the destination services of the pipeline steps to have all maintenances applied to the source service automatically applied to them.

' x-badges: - name: Experimental position: after color: '#787885' x-experimental: true parameters: - $ref: '#/components/parameters/project' - $ref: '#/components/parameters/service_name' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpgradePipelineStepValidateRequestBody' example: comment: Validated after testing responses: '204': description: Validate upgrade step content: {} '404': description: Project not found content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - project_not_found title: Machine processable error code. Clients must be prepared to handle new codes. description: 'project_not_found: Project not found' '409': description: Validation not possible due to state of the service content: application/json: schema: type: object properties: message: type: string title: Human readable error message errors: type: array title: List of error details. Typically there is only one element items: type: object properties: message: type: string title: Human readable error message error_code: type: string enum: - upgrade_step_validation_not_possible_due_to_service_state title: Machine processable error code. Clients must be prepared to handle new codes. description: 'upgrade_step_validation_not_possible_due_to_service_state: Upgrade step validation not possible due to service state' security: - tokenAuth: [] oauth2: - services:write components: parameters: upgradepipelinesteplist_destination_project_name: in: query name: destination_project_name description: Filter results by destination project name schema: type: string maxLength: 63 required: false upgradepipelinesteplist_limit: in: query name: limit description: Limit results to this number schema: type: integer minimum: 30 maximum: 999 required: false service_name: in: path name: service_name description: Service name schema: type: string required: true upgradepipelinesteplist_source_project_name: in: query name: source_project_name description: Filter results by source project name schema: type: string maxLength: 63 required: false step_id: in: path name: step_id description: Upgrade step ID schema: type: string enum: - 550e8400-e29b-41d4-a716-446655440000 required: true upgradepipelinesteplist_cursor: in: query name: cursor description: Pagination cursor schema: type: string required: false project: in: path name: project description: Project name schema: type: string required: true upgradepipelinesteplist_destination_service_name: in: query name: destination_service_name description: Filter results by destination service name schema: type: string maxLength: 36 required: false organization_id: in: path name: organization_id description: ID of an organization schema: type: string required: true upgradepipelinesteplist_source_service_name: in: query name: source_service_name description: Filter results by source service name schema: type: string maxLength: 36 required: false schemas: UpgradePipelineStepUpdateRequestBody: type: object description: UpgradePipelineStepUpdateRequestBody properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation UpgradePipelineStepValidateRequestBody: type: object description: UpgradePipelineStepValidateRequestBody properties: comment: type: string description: Validation comment UpgradePipelineStepCreateResponse: type: object description: UpgradePipelineStepCreateResponse properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation destination_project_name: type: string description: Destination project name destination_service_name: type: string description: Destination service name last_validation: type: object description: Last validation information for an upgrade step. title: Most recent validation (null if no validations exist) properties: comment: type: string description: Validation comment validated_at: type: string maxLength: 36 description: When the validation was created validated_by_user: type: string description: User who created the validation (null for auto-validation) required: - comment - validated_at - validated_by_user source_project_name: type: string description: Source project name source_service_name: type: string description: Source service name step_id: type: string minLength: 36 maxLength: 36 description: Step ID required: - auto_validation_delay_days - destination_project_name - destination_service_name - last_validation - source_project_name - source_service_name - step_id UpgradePipelineStepUpdateResponse: type: object description: UpgradePipelineStepUpdateResponse properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation destination_project_name: type: string description: Destination project name destination_service_name: type: string description: Destination service name last_validation: type: object description: Last validation information for an upgrade step. title: Most recent validation (null if no validations exist) properties: comment: type: string description: Validation comment validated_at: type: string maxLength: 36 description: When the validation was created validated_by_user: type: string description: User who created the validation (null for auto-validation) required: - comment - validated_at - validated_by_user source_project_name: type: string description: Source project name source_service_name: type: string description: Source service name step_id: type: string minLength: 36 maxLength: 36 description: Step ID required: - auto_validation_delay_days - destination_project_name - destination_service_name - last_validation - source_project_name - source_service_name - step_id UpgradePipelineStepGetResponse: type: object description: UpgradePipelineStepGetResponse properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation destination_project_name: type: string description: Destination project name destination_service_name: type: string description: Destination service name last_validation: type: object description: Last validation information for an upgrade step. title: Most recent validation (null if no validations exist) properties: comment: type: string description: Validation comment validated_at: type: string maxLength: 36 description: When the validation was created validated_by_user: type: string description: User who created the validation (null for auto-validation) required: - comment - validated_at - validated_by_user source_project_name: type: string description: Source project name source_service_name: type: string description: Source service name step_id: type: string minLength: 36 maxLength: 36 description: Step ID required: - auto_validation_delay_days - destination_project_name - destination_service_name - last_validation - source_project_name - source_service_name - step_id UpgradePipelineStepListResponse: type: object description: UpgradePipelineStepListResponse properties: first: type: string description: First page last: type: string description: Last page next: type: string description: Next page prev: type: string description: Previous page steps: type: array description: Steps items: type: object properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation destination_project_name: type: string description: Destination project name destination_service_name: type: string description: Destination service name last_validation: type: object description: Last validation information for an upgrade step. title: Most recent validation (null if no validations exist) properties: comment: type: string description: Validation comment validated_at: type: string maxLength: 36 description: When the validation was created validated_by_user: type: string description: User who created the validation (null for auto-validation) required: - comment - validated_at - validated_by_user source_project_name: type: string description: Source project name source_service_name: type: string description: Source service name step_id: type: string minLength: 36 maxLength: 36 description: Step ID required: - auto_validation_delay_days - destination_project_name - destination_service_name - last_validation - source_project_name - source_service_name - step_id total_count: type: integer description: Total number of results required: - steps UpgradePipelineStepCreateRequestBody: type: object description: UpgradePipelineStepCreateRequestBody properties: auto_validation_delay_days: type: integer minimum: 1 description: Days before automatic validation (defaults to 7) destination_project_name: type: string description: Destination project name destination_service_name: type: string description: Destination service name source_project_name: type: string description: Source project name source_service_name: type: string description: Source service name required: - destination_project_name - destination_service_name - source_project_name - source_service_name securitySchemes: tokenAuth: description: 'Header should be of the format `authorization: aivenv1 `. Tokens can be obtained from [your Aiven profile page](https://console.aiven.io/profile/auth)' scheme: bearer type: http oauth2: type: oauth2 description: OAuth2 security scheme flows: authorizationCode: authorizationUrl: https://console.aiven.io/oauth/authorize tokenUrl: https://api.aiven.io/v1/oauth2/token scopes: all: Provide full access to the API accounts: Allow enumerating and reading accounts configuration accounts:read: Allow modifying account configuration accounts:write: Provides full access to authentication related API authentication: Provides full access to authentication related API authentication:read: Allow reading authentication related configuration on resources (user profile, accounts) authentication:write: Allow modifying authentication related configurations on resources (user profile, accounts) billing: Provide full access to billing APIs billing:read: Allow reading billing information and configuration billing:write: Allow writing billing configuration payments: Provide full access to payment method APIs payments:read: Allow reading the payment method configurations payments:write: Allows writing payment method configuration privatelink: Provide full access to private link APIs privatelink:read: Allow enumerating and reading private link items and configurations privatelink:write: Allow writing (creating, modifying, deleting) private link items projects: Provide full access to projects APIs projects:read: Allow enumerating projects and reading their configuration projects:write: Allow writing (creating, modifying, deleting) projects scim: Provide full access to SCIM operations scim:read: Allow reading SCIM endpoints scim:write: Allow writing (modifying) SCIM endpoints services: Provide full access to services APIs services:read: Allow enumerating services and reading their configuration services:write: Allow writing (creating, modifying, deleting) services static_ips: Provide full access to static IPs APIs static_ips:read: Allow enumerating and reading static IP items and configurations static_ips:write: Allow writing (creating, modifying, deleting) static IP items tickets: Provide full access to support ticket APIs tickets:read: Allow enumerating and reading support tickets tickets:write: Allow writing (creating, modifying) support tickets user: Provide full access to user profile APIs user:read: Allow reading user profile and configuration user:write: Allow writing (modifying) user profile and configuration externalDocs: description: Aiven CLI client url: https://github.com/aiven/aiven-client