Plan

O plano define o conjunto de interceptores que serão executados no API Gateway. Cada API pode ter vários planos, mas cada plano só é executado quando está vinculado a uma app ou access token.

Agrupando interceptores em um plano, você pode criar diferentes níveis de uso para suas APIs, estabelecendo políticas de fluxo distintas para cada nível. Isso oferece um controle maior sobre como diferentes tipos de usuários acessam suas APIs.

Embora uma API possa ter múltiplos planos para diferentes controles de fluxo, cada plano está vinculado a uma única API.

Consulte a documentação de Plans para mais detalhes.

Estrutura do Arquivo .yaml de Plano (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

Se não especificar nenhuma flag, o modo interativo será ativado.
$ ssd (api-management | apim) get plan --name Plan Sample --api-name API Sample --api-version 1.0.0

# Busca um plano com formato yaml
$ ssd api-management get plan --id 111 --output yaml

# Busca um plano e o salva em um arquivo yaml
$ ssd api-management get plan --id 111 --output yaml > plan.yaml
Thanks for your feedback!
EDIT
How useful was this article to you?