Plan

El plan define el conjunto de interceptores que serán ejecutados en el API Gateway. Cada API puede tener varios planes, pero cada plan solo se ejecuta cuando está vinculado a una app o access token.

Agrupando interceptores en un plan, puede crear diferentes niveles de uso para sus APIs, estableciendo políticas de flujo distintas para cada nivel. Esto ofrece un mayor control sobre cómo diferentes tipos de usuarios acceden a sus APIs.

Aunque una API puede tener varios planes para diferentes controles de flujo, cada plan está vinculado a una única API.

Consulte la documentación de Planes para más detalles.

Estructura del Archivo .yaml de Plan (comando apply)

apiVersion: api-management.sensedia.com/v1
kind: Plan
metadata:
  timestamp: "2024-04-16T17:06:24.046-03:00"
spec:
  name: Plan Sample
  apiRef:
    name: API Sample
    version: 1.0
  description: API Sample
  default: true
  flows:
  - context:
      revision: all
      resourceRef:
        name: all
      operationRef:
        method: all
        path: /
    requestInterceptors:
    - restrictAccess:
        environmentRefs:
        - name: Sandbox
        type: ALLOW_LIST | REJECT_LIST
    - rateLimit:
        calls: 1000
        limitBy: IP
        interval: SECOND | MINUTE | HOUR | DAY | MONTH
        softLimit:
          enabled: true | false
          percentage: 0 | 100
        returnQuotaHeader: true
    - log:
        encryptContent: false | true
        encryptParams: false | true
    - logObfuscation:
        location: HEADER | BODY
        attribute: "lorem.ipsum"
        customRegex: .+
        replaceWith: "ipsum"
    - header:
        headers:
        - name: Content-Type
          type: CUSTOM
          value: application/json
    - xmlToJson:
        forceValueAsString: true | false
    - timeAllowed:
        timezone: America/Sao_Paulo
        hoursOfDayInUTC: 4|15
    - dataObfuscation:
        location: BODY
        customRegex: '"cnpj":".*"'
        replaceWith: '"cnpj":"**.***.***/****-**"'
    - destination:
        type: APP | ACCESS_TOKEN | CUSTOM
        value: "123"
    - httpMethod:
        method: POST
    responseInterceptors:
    - jsonToXml: {}
    - header:
        headers:
        - name: Content-Type
          type: CUSTOM
          value: text/xml

Uso

Si no especifica ningun flag, se activará el modo interactivo.
$ ssd (api-management | apim) get plan --name Plan Sample --api-name API Sample --api-version 1.0.0

Busca un plan con formato yaml
$ ssd api-management get plan --id 111 --output yaml

Busca un plan y lo guarda en un archivo yaml
$ ssd api-management get plan --id 111 --output yaml > plan.yaml
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]