openapi: 3.0.1 info: title: Equinix API Authentication Stream Alert Rules API description: 'Equinix APIs use the OAuth 2.0 for authentication and authorization. Equinix supports the resource owner password and the client credentials flow. To begin, obtain OAuth 2.0 client credentials from the Equinix Developer Console under "My Apps". Then your client application requests an access token from the Equinix API Authorization endpoint, extracts the access_token from the response, and sends the Bearer token to the API that you want to access' termsOfService: https://www.equinix.com/about/legal/terms contact: name: Equinix API Support url: https://docs.equinix.com/api-support.htm version: '1.2' servers: - url: https://api.equinix.com tags: - name: Stream Alert Rules description: Stream Alert Rules Beta paths: /fabric/v4/streams/{streamId}/alertRules: get: tags: - Stream Alert Rules summary: Get Stream Alert Rules description: This API provides capability to retrieve stream alert rules operationId: getStreamAlertRules parameters: - name: streamId in: path description: Stream UUID required: true schema: $ref: '#/components/schemas/StreamId' - name: offset in: query description: offset required: false schema: type: integer example: 1 - name: limit in: query description: number of records to fetch required: false schema: type: integer example: 10 responses: '200': description: Stream Alert Rules object content: application/json: schema: $ref: '#/components/schemas/GetAllStreamAlertRuleResponse' examples: GetAllStreamAlertRuleResponse: $ref: '#/components/examples/stream-alert-rules-get-all-example' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/404' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/500' post: tags: - Stream Alert Rules summary: Create Stream Alert Rules description: This API provides capability to create user's Stream Alert Rules operationId: createStreamAlertRules parameters: - name: streamId in: path description: Stream UUID required: true schema: $ref: '#/components/schemas/StreamId' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlertRulePostRequest' examples: CreateStreamAlertRules: $ref: '#/components/examples/StreamAlertRulePostRequestExample' CreateStreamSmartAlertRules: $ref: '#/components/examples/StreamSmartAlertRulePostRequestExample' required: true responses: '202': description: Stream Alert Rules object content: application/json: schema: $ref: '#/components/schemas/StreamAlertRule' examples: StreamAlertRuleRequestResponse: $ref: '#/components/examples/StreamAlertRuleResponseExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/403' '415': description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/415' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/500' /fabric/v4/streams/{streamId}/alertRules/{alertRuleId}: get: tags: - Stream Alert Rules summary: Get Stream Alert Rules description: This API provides capability to get user's stream alert rules operationId: getStreamAlertRuleByUuid parameters: - name: streamId in: path description: Stream UUID required: true schema: $ref: '#/components/schemas/StreamId' - name: alertRuleId in: path description: alert rule UUID required: true schema: $ref: '#/components/schemas/AlertRuleId' responses: '200': description: Stream Alert Rules object content: application/json: schema: $ref: '#/components/schemas/StreamAlertRule' examples: StreamAlertRuleResponse: $ref: '#/components/examples/StreamAlertRuleResponseExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/404' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/500' put: tags: - Stream Alert Rules summary: Update Stream Alert Rules description: This API provides capability to update a user's stream alert rule operationId: updateStreamAlertRuleByUuid parameters: - name: streamId in: path description: Stream UUID required: true schema: $ref: '#/components/schemas/StreamId' - name: alertRuleId in: path description: alert rule UUID required: true schema: $ref: '#/components/schemas/AlertRuleId' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlertRulePutRequest' examples: UpdateStreamAlertRules: $ref: '#/components/examples/StreamAlertRulePutRequestExample' required: true responses: '202': description: Stream Alert Rules object content: application/json: schema: $ref: '#/components/schemas/StreamAlertRule' examples: StreamAlertRuleRequestResponse: $ref: '#/components/examples/StreamAlertRuleResponseExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/404' '415': description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/415' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/500' delete: tags: - Stream Alert Rules summary: Delete Stream Alert Rules description: This API provides capability to delete a user's stream alert rule operationId: deleteStreamAlertRuleByUuid parameters: - name: streamId in: path description: Stream UUID required: true schema: $ref: '#/components/schemas/StreamId' - name: alertRuleId in: path description: alert rule UUID required: true schema: $ref: '#/components/schemas/AlertRuleId' responses: '202': description: Stream Alert Rules object content: application/json: schema: $ref: '#/components/schemas/StreamAlertRule' examples: StreamAlertRuleDeleteResponse: $ref: '#/components/examples/StreamAlertRuleDeleteResponseExample' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/404' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorList' examples: example: $ref: '#/components/examples/500' components: examples: '415': value: - errorCode: EQ-3040016 errorMessage: Unsupported media type, please check the request's Content-Type or Content-Encoding correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec additionalInfo: - property: contentType reason: The payload format is in an unsupported format stream-alert-rules-get-all-example: value: pagination: offset: 0 limit: 20 total: 1 data: - href: https://api.equinix.com/fabric/v4/streams/d684aa26-8276-48b7-bb42-a6d9def0a418/alertRules/0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 uuid: 0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 type: METRIC_ALERT name: metric-alert-1 description: metric-alert-1 state: ACTIVE enabled: true metricSelector: include: - equinix.fabric.connection.bandwidth_tx.usage resourceSelector: include: - /fabric/v4/connections/8b140c74-0331-46d1-9cb3-2981be84dd1b detectionMethod: type: THRESHOLD windowSize: PT15M operand: ABOVE warningThreshold: 35000000 criticalThreshold: 45000000 changeLog: createdBy: user createdDateTime: 2024-05-06 16:21:18.545214+00:00 '404': value: - errorCode: EQ-3045811 errorMessage: uuid not found correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: uuid not found StreamAlertRulePutRequestExample: value: name: metric-alert-1 type: METRIC_ALERT description: metric-alert-1 enabled: true metricSelector: include: - equinix.fabric.connection.bandwidth_tx.usage resourceSelector: include: - /fabric/v4/connections/8b140c74-0331-46d1-9cb3-2981be84dd1b detectionMethod: type: THRESHOLD windowSize: PT15M operand: ABOVE warningThreshold: 35000000 criticalThreshold: 45000000 StreamAlertRulePostRequestExample: value: name: metric-alert-1 type: METRIC_ALERT description: metric-alert-1 enabled: true metricSelector: include: - equinix.fabric.connection.bandwidth_tx.usage resourceSelector: include: - /fabric/v4/connections/8b140c74-0331-46d1-9cb3-2981be84dd1b detectionMethod: type: THRESHOLD windowSize: PT15M warningThreshold: 35000000 criticalThreshold: 45000000 '403': value: - errorCode: EQ-3045003 errorMessage: Operation not allowed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Operation not allowed for current user '401': value: - errorCode: EQ-3000039 errorMessage: User not found in request or invalid. correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 '500': value: - errorCode: EQ-3045004 errorMessage: Internal Server Error correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Internal Server Error StreamAlertRuleDeleteResponseExample: value: href: https://api.equinix.com/fabric/v4/streams/d684aa26-8276-48b7-bb42-a6d9def0a418/alertRules/0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 uuid: 0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 type: METRIC_ALERT name: metric-alert-1 description: metric-alert-1 state: INACTIVE enabled: true metricSelector: include: - equinix.fabric.connection.bandwidth_tx.usage resourceSelector: include: - /fabric/v4/connections/8b140c74-0331-46d1-9cb3-2981be84dd1b detectionMethod: type: THRESHOLD windowSize: PT15M operand: ABOVE warningThreshold: 35000000 criticalThreshold: 45000000 changeLog: createdBy: user createdDateTime: 2024-05-06 16:21:18.545214+00:00 updatedBy: user updatedDateTime: 2025-02-04 00:20:54.511118+00:00 StreamAlertRuleResponseExample: value: href: https://api.equinix.com/fabric/v4/streams/d684aa26-8276-48b7-bb42-a6d9def0a418/alertRules/0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 uuid: 0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 type: METRIC_ALERT name: metric-alert-1 description: metric-alert-1 state: ACTIVE enabled: true metricSelector: include: - equinix.fabric.connection.bandwidth_tx.usage resourceSelector: include: - /fabric/v4/connections/8b140c74-0331-46d1-9cb3-2981be84dd1b detectionMethod: type: THRESHOLD windowSize: PT15M operand: ABOVE warningThreshold: 35000000 criticalThreshold: 45000000 changeLog: createdBy: user createdDateTime: 2024-05-06 16:21:18.545214+00:00 updatedBy: user updatedDateTime: 2025-02-04 00:20:54.511118+00:00 StreamSmartAlertRulePostRequestExample: value: name: metric-alert-1 type: METRIC_ALERT description: metric-alert-1 enabled: true metricSelector: include: - equinix.fabric.metro.sv_sy.latency resourceSelector: include: - /fabric/v4/metros/SV detectionMethod: type: OUTLIER schemas: AlertRuleId: type: string description: Stream Alert Rule UUID format: uuid example: 0bbcea48-1333-4ad5-a7ea-e4d58a5fbd15 PriceError_additionalInfo: type: object properties: property: type: string reason: type: string ResourceSelectorResponse: type: object properties: include: type: array description: "### Supported metric names to use on filters with property /subject:\n * `/fabric/v4/ports/` - port metrics\n * `/fabric/v4/connections/` - connection metrics\n * `/fabric/v4/metros/` - metro latency metrics\n" items: type: string DetectionMethodResponse: type: object properties: type: type: string description: '* THRESHOLD - Alert when a metric crosses a defined threshold by user. * OUTLIER - Intelligent Alert that has an outlier behavior. This option is currently supported for metro latency metric. ' enum: - THRESHOLD - OUTLIER windowSize: type: string description: Stream alert rule metric window size example: PT15M operand: type: string description: Stream alert rule metric operand enum: - ABOVE - BELOW warningThreshold: type: string description: Stream alert rule metric warning threshold criticalThreshold: type: string description: Stream alert rule metric critical threshold GetAllStreamAlertRuleResponse: type: object properties: pagination: $ref: '#/components/schemas/Pagination' data: type: array description: Data returned from the API call. items: $ref: '#/components/schemas/StreamAlertRule' DetectionMethod: required: - type type: object properties: type: type: string description: '* THRESHOLD - Alert when a metric crosses a defined threshold by user. * OUTLIER - Intelligent Alert that has an outlier behavior. This option is currently supported for metro latency metric. ' enum: - THRESHOLD - OUTLIER windowSize: type: string description: Stream alert rule metric window size example: PT15M operand: type: string description: Stream alert rule metric operand enum: - ABOVE - BELOW warningThreshold: type: string description: Stream alert rule metric warning threshold criticalThreshold: type: string description: Stream alert rule metric critical threshold Pagination: required: - limit - total type: object properties: offset: minimum: 0 type: integer description: Index of the first item returned in the response. The default is 0. default: 0 limit: minimum: 0 type: integer description: Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20. default: 20 total: minimum: 0 type: integer description: Total number of elements returned. next: type: string description: URL relative to the next item in the response. previous: type: string description: URL relative to the previous item in the response. description: Pagination response information StreamAlertRule: type: object properties: href: type: string description: Stream Alert Rule URI format: uri readOnly: true uuid: type: string description: Equinix-assigned access point identifier format: uuid example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: type: string description: Stream subscription type enum: - METRIC_ALERT name: type: string description: Customer-provided stream alert rule name description: type: string description: Customer-provided stream alert rule description state: type: string description: Steam subscription provision state enum: - ACTIVE - INACTIVE enabled: type: boolean description: Stream alert rule enabled status default: true metricSelector: $ref: '#/components/schemas/MetricSelectorResponse' resourceSelector: $ref: '#/components/schemas/ResourceSelectorResponse' detectionMethod: $ref: '#/components/schemas/DetectionMethodResponse' changeLog: $ref: '#/components/schemas/Changelog' description: Stream object ErrorList: type: array description: List of Error Message items: $ref: '#/components/schemas/Error' Changelog: type: object properties: createdBy: type: string description: Created by User Key example: johnsmith createdByFullName: type: string description: Created by User Full Name example: John Smith createdByEmail: type: string description: Created by User Email Address example: john.smith@example.com createdDateTime: type: string description: Created by Date and Time format: date-time example: 2020-11-06 07:00:00+00:00 updatedBy: type: string description: Updated by User Key example: johnsmith updatedByFullName: type: string description: Updated by User Full Name example: John Smith updatedByEmail: type: string description: Updated by User Email Address example: john.smith@example.com updatedDateTime: type: string description: Updated by Date and Time format: date-time example: 2020-11-06 07:00:00+00:00 deletedBy: type: string description: Deleted by User Key example: johnsmith deletedByFullName: type: string description: Deleted by User Full Name example: John Smith deletedByEmail: type: string description: Deleted by User Email Address example: john.smith@example.com deletedDateTime: type: string description: Deleted by Date and Time format: date-time example: 2020-11-06 07:00:00+00:00 description: Change log MetricSelector: required: - include type: object properties: include: type: array description: Stream alert rule filtered by metric name items: type: string example: equinix.fabric.metro.sv_da.latency StreamId: type: string description: Stream UUID format: uuid example: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 AlertRulePostRequest: required: - detectionMethod - metricSelector - name - resourceSelector - type type: object properties: type: type: string enum: - METRIC_ALERT name: type: string description: Customer-provided stream name description: type: string description: Customer-provided stream description enabled: type: boolean description: Stream alert rule enabled status example: true default: true metricSelector: $ref: '#/components/schemas/MetricSelector' resourceSelector: $ref: '#/components/schemas/ResourceSelector' detectionMethod: $ref: '#/components/schemas/DetectionMethod' description: Create Stream Alert Rules AlertRulePutRequest: required: - detectionMethod - metricSelector - name - resourceSelector - type type: object properties: name: type: string description: Customer-provided stream name type: type: string enum: - METRIC_ALERT description: type: string description: Customer-provided stream description enabled: type: boolean description: Stream alert rule enabled status default: true metricSelector: $ref: '#/components/schemas/MetricSelector' resourceSelector: $ref: '#/components/schemas/ResourceSelector' detectionMethod: $ref: '#/components/schemas/DetectionMethod' description: Create Stream Alert Rules Error: required: - errorCode - errorMessage type: object properties: errorCode: pattern: ^EQ-\d{7}$ type: string errorMessage: type: string correlationId: type: string details: type: string help: type: string additionalInfo: type: array items: $ref: '#/components/schemas/PriceError_additionalInfo' description: Error Response with details ResourceSelector: required: - include type: object properties: include: type: array description: "### Supported metric names to use on filters with property /subject:\n * `/fabric/v4/ports/` - port metrics\n * `/fabric/v4/connections/` - connection metrics\n * `/fabric/v4/metros/` - metro latency metrics\n" items: type: string MetricSelectorResponse: type: object properties: include: type: array description: Stream alert rule filtered by metric name items: type: string example: equinix.fabric.metro.sv_da.latency x-eqx-api-linter-skip-rules: - 3 - 38