exoscale / egoscale

exoscale golang bindings
https://pkg.go.dev/github.com/exoscale/egoscale/v3
Apache License 2.0
31 stars 15 forks source link

V3: Remove omitempty on nullable complex types #628

Closed pierre-emmanuelJ closed 2 months ago

pierre-emmanuelJ commented 3 months ago

Description

Update instance pool definition

    put:
      tags:
      - instance-pool
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/operation"
      description: ''
      parameters:
      - in: path
        required: true
        name: id
        schema:
          type: string
          format: uuid
      summary: Update an Instance Pool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                anti-affinity-groups:
                  type: array
                  items:
                    "$ref": "#/components/schemas/anti-affinity-group"
                  uniqueItems: true
                  nullable: true
                  description: Instance Pool Anti-affinity Groups
                description:
                  type: string
                  maxLength: 255
                  description: Instance Pool description
                public-ip-assignment:
                  "$ref": "#/components/schemas/public-ip-assignment"
                  description: Assign public IP to Instances
                labels:
                  "$ref": "#/components/schemas/labels"
                  description: Instance Pool Labels
                security-groups:
                  type: array
                  items:
                    "$ref": "#/components/schemas/security-group"
                  uniqueItems: true
                  nullable: true
                  description: Instance Pool Security Groups
                elastic-ips:
                  type: array
                  items:
                    "$ref": "#/components/schemas/elastic-ip"
                  nullable: true
                  description: Instances Elastic IPs
                name:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: Instance Pool name
                instance-type:
                  "$ref": "#/components/schemas/instance-type"
                  description: Instances type
                min-available:
                  type: integer
                  format: int64
                  minimum: 0
                  exclusiveMinimum: false
                  nullable: true
                  description: Minimum number of running Instances
                private-networks:
                  type: array
                  items:
                    "$ref": "#/components/schemas/private-network"
                  uniqueItems: true
                  nullable: true
                  description: Instance Pool Private Networks
                template:
                  "$ref": "#/components/schemas/template"
                  description: Instances template
                ssh-key:
                  "$ref": "#/components/schemas/ssh-key"
                  nullable: true
                  description: Instances SSH key
                instance-prefix:
                  type: string
                  nullable: true
                  description: 'Prefix to apply to Instances names (default: pool)'
                user-data:
                  type: string
                  minLength: 1
                  nullable: true
                  description: Instances Cloud-init user-data
                deploy-target:
                  "$ref": "#/components/schemas/deploy-target"
                  nullable: true
                  description: Instance Pool Deploy Target
                ipv6-enabled:
                  type: boolean
                  description: 'Enable IPv6. DEPRECATED: use `public-ip-assignments`.'
                disk-size:
                  type: integer
                  format: int64
                  minimum: 10
                  maximum: 50000
                  exclusiveMinimum: false
                  exclusiveMaximum: false
                  description: Instances disk size in GB
                ssh-keys:
                  type: array
                  items:
                    "$ref": "#/components/schemas/ssh-key"
                  uniqueItems: true
                  nullable: true
                  description: Instances SSH keys
      operationId: update-instance-pool

Probably some missing nullable statement is missing in this spec for e.g: labels

Checklist

(For exoscale contributors)