openapi: 3.0.3 info: contact: {} description: Astro Platform API title: Astro Platform AgentToken AllowedIpAddressRange API version: v1.0 servers: - url: https://api.astronomer.io/v1 security: - JWT: [] tags: - name: AllowedIpAddressRange paths: /organizations/{organizationId}/allowed-ip-address-ranges: get: description: List allowed IP address ranges. operationId: ListAllowedIpAddressRanges parameters: - description: The ID of the Organization that you want to retrieve the list of IP addresses for. in: path name: organizationId required: true schema: type: string - description: The number of results to skip before returning values. in: query name: offset schema: default: 0 minimum: 0 type: integer - description: The maximum number of results to return. in: query name: limit schema: default: 20 minimum: 0 type: integer - description: A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `:asc` or `:desc`. in: query name: sorts schema: items: enum: - ipAddress:asc - ipAddress:desc - createdAt:asc - createdAt:desc - updatedAt:asc - updatedAt:desc type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/AllowedIpAddressRangesPaginated' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: List allowed IP address ranges tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.get post: description: Create an allowed IP address range that constrains which IP addresses can be used to interact with your Astro Organization using APIs. operationId: CreateAllowedIpAddressRange parameters: - description: The ID of the Organization where you want to create the allowed IP address range. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateAllowedIpAddressRangeRequest' description: The request body for creating an IP address range that allows access to the Astro API. required: true x-originalParamName: body responses: '200': content: application/json: schema: $ref: '#/components/schemas/AllowedIpAddressRange' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Create an allowed IP address range tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.create /organizations/{organizationId}/allowed-ip-address-ranges/{allowedIpAddressRangeId}: delete: description: Delete an allowed IP address range. operationId: DeleteAllowedIpAddressRange parameters: - description: The ID of the Organization where you want to delete the allowed IP address range. in: path name: organizationId required: true schema: type: string - description: The ID of the allowed IP address range that you want to delete. in: path name: allowedIpAddressRangeId required: true schema: type: string responses: '204': description: '' '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Delete an allowed IP address range tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.delete /organizations/{organizationId}/allowed-ip-address-ranges/bulk-create: post: description: 'Create up to 1000 allowed IP address ranges for the organization in one request. The whole batch is created atomically — if any item fails validation or conflicts with an existing range, no rows are inserted. This endpoint is NOT idempotent: a retry after an unacknowledged 2xx response may return 409. Clients should call ListAllowedIpAddressRanges to verify state before retrying.' operationId: BulkCreateAllowedIpAddressRanges parameters: - description: The ID of the Organization where you want to create the allowed IP address ranges. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkCreateAllowedIpAddressRangesRequest' description: The request body containing the list of CIDR ranges to create. required: true x-originalParamName: body responses: '200': content: application/json: schema: $ref: '#/components/schemas/AllowedIpAddressRangesList' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found '409': content: application/json: schema: $ref: '#/components/schemas/Error' description: Conflict '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk create allowed IP address ranges tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.create /organizations/{organizationId}/allowed-ip-address-ranges/bulk-delete: post: description: Delete up to 1000 allowed IP address ranges for the organization in one request. The whole batch is deleted atomically. Unknown or duplicate IDs are accepted and ignored; matching rows for this organization are deleted. operationId: BulkDeleteAllowedIpAddressRanges parameters: - description: The ID of the Organization where you want to delete the allowed IP address ranges. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkDeleteAllowedIpAddressRangesRequest' description: The request body containing the list of allowed IP address range IDs to delete. required: true x-originalParamName: body responses: '204': description: '' '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk delete allowed IP address ranges tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.delete components: schemas: BulkCreateAllowedIpAddressRangesRequest: properties: allowedIpAddressRanges: description: 'The allowed IP address ranges, in CIDR format. The batch is created atomically: if any value fails validation or conflicts with an existing range, no rows are inserted.' example: - 1.1.1.1/32 - 2.2.2.2/32 items: type: string maxItems: 1000 minItems: 1 type: array required: - allowedIpAddressRanges type: object FieldValidationError: properties: code: type: string field: type: string message: type: string required: - code - field - message type: object BulkDeleteAllowedIpAddressRangesRequest: properties: allowedIpAddressRangeIds: description: The allowed IP address range IDs to delete. Duplicate and unknown IDs are accepted; existing matching rows are deleted atomically. example: - clm9sq6s0000008kz7uvl7yz7 - clm9sq6s0000108kz8ybn9r1c items: type: string maxItems: 1000 minItems: 1 type: array required: - allowedIpAddressRangeIds type: object AllowedIpAddressRangesPaginated: properties: allowedIpAddressRanges: items: $ref: '#/components/schemas/AllowedIpAddressRange' type: array limit: description: The maximum number of allowed IP address ranges in one page. example: 10 type: integer offset: description: The offset of the current page of allowed IP address ranges. example: 0 type: integer totalCount: description: The total number of allowed IP address ranges. example: 10 type: integer required: - allowedIpAddressRanges - limit - offset - totalCount type: object AllowedIpAddressRange: properties: createdAt: description: The time when the allowed IP address range was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: '2022-11-22T04:37:12Z' format: date-time type: string createdBy: $ref: '#/components/schemas/BasicSubjectProfile' id: description: The allowed IP address range's ID. example: clm9sq6s0000008kz7uvl7yz7 type: string ipAddressRange: description: The allowed IP address range in CIDR format. example: 1.1.1.1/32 type: string organizationId: description: The allowed IP address range's Organization ID. example: clyt27999000008me3yp39wcp type: string updatedAt: description: The time when the allowed IP address range was updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: '2022-11-22T04:37:12Z' format: date-time type: string updatedBy: $ref: '#/components/schemas/BasicSubjectProfile' required: - createdAt - id - ipAddressRange - organizationId - updatedAt type: object CreateAllowedIpAddressRangeRequest: properties: ipAddressRange: description: The allowed IP address range in CIDR format. example: 1.1.1.1/32 type: string required: - ipAddressRange type: object AllowedIpAddressRangesList: properties: allowedIpAddressRanges: items: $ref: '#/components/schemas/AllowedIpAddressRange' type: array required: - allowedIpAddressRanges type: object BasicSubjectProfile: properties: apiTokenName: description: The API token's name. Returned only when `SubjectType` is `SERVICEKEY`. example: my-token type: string avatarUrl: description: The URL for the user's profile image. Returned only when `SubjectType` is `USER`. example: https://avatar.url type: string fullName: description: The subject's full name. Returned only when `SubjectType` is `USER`. example: Jane Doe type: string id: description: The subject's ID. example: clm8qv74h000008mlf08scq7k type: string subjectType: description: The subject type. enum: - USER - SERVICEKEY example: USER type: string username: description: The subject's username. Returned only when `SubjectType` is `USER`. example: user1@company.com type: string required: - id type: object Error: properties: fieldErrors: description: 'FieldErrors carries one entry per failed request-validation constraint. Only present on 400 responses caused by request binding/validation.' items: $ref: '#/components/schemas/FieldValidationError' type: array message: type: string requestId: type: string statusCode: maximum: 600 minimum: 400 type: integer required: - message - requestId - statusCode type: object securitySchemes: JWT: scheme: bearer type: http