Konsolenseiten mit Schemadokumenten erweitern

Prüfen Sie Anforderungen, unterstützte Typen und Beispiele für Schemadokumente, die mit Terraform-Konfigurationen in Resource Manager verwendet werden.

Schemadokumente werden bei Verwendung von Resource Manager für Terraform-Konfigurationen empfohlen. Durch die Aufnahme eines Schemadokuments können Sie Seiten in der Oracle Cloud Infrastructure-Konsole erweitern. Erleichtern Sie den Variableneintrag auf der Seite Stack erstellen, indem Sie SSH-Schlüsselsteuerelemente anzeigen und Werte benennen, gruppieren, dynamisch vorab auffüllen und vieles mehr. Definieren Sie Text auf der Registerkarte Anwendungsinformationen der Seite Stackdetails, die für einen erstellten Stack geöffnet wird.

Anforderungen für Schemadokumente

Schemadokumente für Resource Manager müssen folgende Anforderungen erfüllen:

  • YAML-Format

  • Datentypen müssen mit der zugehörigen Terraform-Konfiguration konsistent sein.

    Beispiel: Sie deklarieren den Typ number für die Variable availability im Schema. In diesem Fall muss availability denselben deklarierten Typ (number) in der zugehörigen Terraform-Konfiguration aufweisen. (Standardmäßig verwenden Variablen ohne deklarierten Typ string.)

  • Platzierung unter dem Root-Ordner der Resource Manager-Terraform-Konfiguration. (Standardmäßig wird im Schemadokument angenommen, dass der Root-Ordner das Arbeitsverzeichnis ist.)

Unterstützte Typen (Dynamisches Ausfüllen und Steuerelemente)

In diesem Abschnitt werden die von Resource Manager unterstützten Typen für dynamische Vorabauffüllung und Steuerelemente aufgeführt.

Für die meisten Typen ist die Compartment-OCID (dependsOn: required: compartmentId) erforderlich. Einige Typen verfügen über zusätzliche erforderliche oder optionale Elemente. Informationen zum Bestimmen erforderlicher und optionaler Elemente für einen Typ finden Sie unter Meta-Schema für Validierung.

Filtern Sie optional dynamisch vorab aufgefüllte Listen mit dependsOn nach anderen Variablen. Beispiel: Subnetze nach VCN filtern. Weitere Informationen finden Sie unter Dynamische Vorabauffüllung.

Hinweis

Beschreibungen in schema.yaml-Dateien sind HTML-codiert in der Ausgabe.

Wenn sie in der Terraform-Konfiguration definiert sind, werden die folgenden Variablen automatisch mit Werten auf den Konsolenseiten aufgefüllt, mit denen der Stack erstellt und bearbeitet wird. Die Werte des Stacks werden verwendet, wenn Sie die Terraform-Aktionen Planen, Anwenden und Zerstören auswählen.

  • tenancy_ocid (Mandanten-OCID)
  • compartment_ocid (Compartment-OCID)
  • region (Region)
  • current_user_ocid (OCID des aktuellen Benutzers)
Typ (wird als Dropdown-Feld Dynamisch vorab aufgefüllt wiedergegeben, sofern nicht anders angegeben) Ressourcen-ID Anmerkungen
file -- Übersetzt ein Steuerelement zum Hinzufügen einer einzelnen Datei durch Löschen oder Durchsuchen. Wenn dieses Steuerelement angezeigt wird, kann ein Benutzer eine Datei einer beliebigen Erweiterung hochladen, z.B. einen Lizenzschlüssel oder ein Zertifikat. Weitere Informationen finden Sie unter Dateikontrolle.
oci:apm:domain:id OCID der Application Performance Monitoring-(APM-)Domain
oci:blockstorage:policies:id Volume-Backup-Policy
oci:container:cluster:id Kubernetes-Cluster-OCID
oci:core:image:id Image-OCID
oci:core:instanceshape:name Name der Instanzausprägung
oci:core:natgateway:id NAT-Gateway-OCID
oci:core:nsg:id Network Security Group-OCID
oci:core:servicegateway:id Servicegateway-OCID
oci:core:ssh:publickey -- Stellt ein Steuerelement für das Hinzufügen eines oder mehrerer SSH-Public Keys dar, indem Dateien gelöscht oder Schlüsselwerte eingefügt werden. Weitere Informationen finden Sie unter SSH-Schlüsselsteuerung.
oci:core:subnet:id Subnetz-OCID
oci:core:vcn:id OCID des VCN
oci:database:autonomouscontainerdatabase:id Autonomous Container Database-OCID
oci:database:autonomousdatabase:id Autonomous Database-OCID
oci:database:autonomousdatabaseversion:id Autonomous Database-Version
oci:database:database:id Datenbank-OCID für eine Base Database-Servicedatenbank oder eine Exadata Database Service on Dedicated Infrastructure-Datenbank.
oci:database:dbhome:id DB-Home-OCID (gilt für Base Database und Exadata Database Service on Dedicated Infrastructure)
oci:database:dbsystem:id DB-System-OCID (gilt für Basisdatenbank)
oci:identity:availabilitydomain:name Availability-Domainname
oci:identity:compartment:id Compartment-OCID
oci:identity:domains:id Identitätsdomain-OCID

Geben Sie die Mandanten-OCID als compartmentId an. Siehe ListDomains.

oci:identity:dynamicgroups:id OCID der dynamischen Gruppe

Geben Sie die Mandanten-OCID als compartmentId an. Siehe ListDynamicGroups.

oci:identity:faultdomain:name Name der Faultdomain
oci:identity:groups:id Gruppen-OCID

Geben Sie die Mandanten-OCID als compartmentId an. Siehe ListGroups.

oci:identity:region:name Regionsname
oci:identity:tag:value Tagschlüsselname aus Tag-Namespace; siehe TagSummary Stellt ein Steuerelement für das Hinzufügen von definierten Tags und Freiformtags dar. Weitere Informationen finden Sie unter Taggingsteuerelement.
oci:kms:key:id Vault-Schlüssel-OCID; siehe ListKeys
oci:kms:secret:id Vault Secret-OCID; siehe ListSecrets
oci:kms:vault:id Vault-OCID
oci:kubernetes:versions:id Siehe GetClusterOptions
oci:loadbalancer:loadbalancer:id Load-Balancer-OCID
oci:ods:project:id OCID des Data Science-Projekts
oci:resourcemanager:privateendpoint:id OCID des privaten Resource Manager-Endpunkts Geben Sie ein Compartment (compartmentId) und ein VCN (vcnId) an, um private Endpunkte aufzulisten. Ein Beispiel finden Sie unter Beispieldeklaration für private Endpunkte auf dieser Seite.

Meta-Schema für Validierung

Verwenden Sie die folgende Meta-Schemadatei, um zu bestätigen, dass Ihr Schemadokument unterstützte Variablentypen verwendet.

Meta-Schema
# Meta JSON Schema.
#
# This is used to validate the Schema file when the package is uploaded/loaded into Resource Manager.
# For marketplace, it is also used to validate the package when the package artifact is created in Partner Portal.
#
# NOTE: additionalProperties are set to true explicitly even though this is the default.  It must be set to true in
# cases where we use the allOf. This is a quirk of JSON Schema.  During validation, allOf means it has to match all of
# the individual definitions separately. It doesn't mean it has to match a Union of the individual definitions. This
# is a known issue with JSON Schema.
title: Schema
type: object
required:
  - variables
  - schemaVersion
additionalProperties: true
properties:
  title:
    type: string
  description:
    type: string
  stackDescription:
    type: string
  packageVersion:
    type: string
  version:
    type: string
  schemaVersion:
    type: string
    enum:
      - 1.0.0
      - 1.1.0
  locale:
    $ref: "#/definitions/locale"
  logoUrl:
    $ref: "#/definitions/url"
  source:
    $ref: "#/definitions/source"
  informationalText:
    type: string
  instructions:
    type: string
  troubleshooting:
    type: string
  allowViewState:
    type: boolean
  variables:
    $ref: "#/definitions/variables"
  # Deprecated - use variableGroups instead
  groupings:
    $ref: "#/definitions/variableGroups"
  variableGroups:
    $ref: "#/definitions/variableGroups"
  outputs:
    $ref: "#/definitions/outputs"
  outputGroups:
    $ref: "#/definitions/outputGroups"
  primaryOutputButton:
    type: string
    format: variablereference

definitions:
  source:
    type: object
    properties:
      type:
        enum:
          - marketplace
          - quickstart
          - web
      reference:
        type:
          - string
          - number
    additionalProperties: false

  variableGroups:
    type: array
    items:
      $ref: "#/definitions/variableGroup"

  variableGroup:
    type: object
    required:
      - title
      - variables
    properties:
      title:
        type: string
      variables:
        type: array
        items:
          type: string
          format: variablereference
      visible:
        $ref: "#/definitions/booleanStatement"
    additionalProperties: true

  locale:
    enum:
      - en
    default: en

  url:
    type: string
    pattern: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

  ocid:
    type: string
    pattern: ^ocid1\.([a-z0-9_-]{1,32})\.([a-z0-9_-]{1,15})\.([a-z0-9]{0,24})\.([a-z0-9]{60})$

  variables:
    type: object
    additionalProperties:
      $ref: "#/definitions/variable"

  variable:
    oneOf:
      - $ref: "#/definitions/staticVariable"
      - $ref: "#/definitions/dynamicVariable"
      - $ref: "#/definitions/complexVariable"

  baseVariable:
    type: object
    properties:
      title:
        type: string
        minLength: 1
      description:
        type: string
      required:
        type: boolean
        default: false
      visible:
        $ref: "#/definitions/booleanStatement"

  booleanStatement:
    oneOf:
      - type: boolean
      - type: string
      - $ref: "#/definitions/equality"
      - $ref: "#/definitions/greaterThanOrEqual"
      - $ref: "#/definitions/lessThanOrEqual"
      - $ref: "#/definitions/greaterThan"
      - $ref: "#/definitions/lessThan"
      - $ref: "#/definitions/booleanOr"
      - $ref: "#/definitions/booleanAnd"
      - $ref: "#/definitions/booleanNot"

  equality:
    type: object
    properties:
      eq:
        type: array
        items:
          - type: [string, number]
          - type: [string, number]
        additionalItems: false
    additionalProperties: false

  greaterThanOrEqual:
    type: object
    properties:
      ge:
        type: array
        items:
          - type: [string, number]
          - type: [string, number]
        additionalItems: false
    additionalProperties: false

  lessThanOrEqual:
    type: object
    properties:
      le:
        type: array
        items:
          - type: [string, number]
          - type: [string, number]
        additionalItems: false
    additionalProperties: false

  greaterThan:
    type: object
    properties:
      gt:
        type: array
        items:
          - type: [string, number]
          - type: [string, number]
        additionalItems: false
    additionalProperties: false

  lessThan:
    type: object
    properties:
      lt:
        type: array
        items:
          - type: [string, number]
          - type: [string, number]
        additionalItems: false
    additionalProperties: false

  booleanOr:
    type: object
    properties:
      or:
        type: array
        items:
          - $ref: "#/definitions/booleanStatement"
          - $ref: "#/definitions/booleanStatement"
        additionalItems: false
    additionalProperties: false

  booleanAnd:
    type: object
    properties:
      and:
        type: array
        items:
          - $ref: "#/definitions/booleanStatement"
          - $ref: "#/definitions/booleanStatement"
        additionalItems: false
    additionalProperties: false

  booleanNot:
    type: object
    properties:
      not:
        type: array
        items:
          - $ref: "#/definitions/booleanStatement"
        additionalItems: false
    additionalProperties: false

  dependsOnCompartment:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - dependsOn
        properties:
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  staticVariable:
    oneOf:
      - $ref: "#/definitions/arrayVariable"
      - $ref: "#/definitions/booleanVariable"
      - $ref: "#/definitions/enumVariable"
      - $ref: "#/definitions/integerVariable"
      - $ref: "#/definitions/numberVariable"
      - $ref: "#/definitions/stringVariable"
      - $ref: "#/definitions/multilineVariable"
      - $ref: "#/definitions/fileVariable"

      - $ref: "#/definitions/passwordVariable"
      - $ref: "#/definitions/datetimeVariable"

  dynamicVariable:
    oneOf:
      - $ref: "#/definitions/imageVariable"
      - $ref: "#/definitions/identityDomainVariable"
      - $ref: "#/definitions/instanceShapeVariable"
      - $ref: "#/definitions/subnetVariable"
      - $ref: "#/definitions/vcnVariable"
      - $ref: "#/definitions/availabilityDomainVariable"
      - $ref: "#/definitions/compartmentVariable"
      - $ref: "#/definitions/faultDomainVariable"
      - $ref: "#/definitions/regionVariable"
      - $ref: "#/definitions/dbSystemVariable"
      - $ref: "#/definitions/dbHomeVariable"
      - $ref: "#/definitions/dbHomeVersionVariable"
      - $ref: "#/definitions/databaseVariable"
      - $ref: "#/definitions/autonomousDatabaseVariable"
      - $ref: "#/definitions/autonomousDatabaseVersionVariable"
      - $ref: "#/definitions/autonomousContainerDBVariable"
      - $ref: "#/definitions/kmsVaultVariable"
      - $ref: "#/definitions/containerClusterVariable"
      - $ref: "#/definitions/volumeBackupPoliciesVariable"
      - $ref: "#/definitions/loadBalancerVariable"
      - $ref: "#/definitions/serviceGatewayVariable"
      - $ref: "#/definitions/kubernetesVersionsVariable"
      - $ref: "#/definitions/instanceVariable"
      - $ref: "#/definitions/natGatewayVariable"
      - $ref: "#/definitions/tagVariable"
      - $ref: "#/definitions/nsgVariable"
      - $ref: "#/definitions/mountTargetsVariable"
      - $ref: "#/definitions/kmsKeyVariable"
      - $ref: "#/definitions/kmsSecretVariable"
      - $ref: "#/definitions/odsProjectVariable"
      - $ref: "#/definitions/instanceShapeVariableWithFlex"
      - $ref: "#/definitions/groupsVariable"
      - $ref: "#/definitions/dynamicGroupsVariable"
      - $ref: "#/definitions/logAnalyticsLogGroup"
      - $ref: "#/definitions/logAnalyticsLogEntities"
      - $ref: "#/definitions/logAnalyticsScheduledTasks"
      - $ref: "#/definitions/logAnalyticsEntityTypes"
      - $ref: "#/definitions/managementAgents"
      - $ref: "#/definitions/logAnalyticsSources"
      - $ref: "#/definitions/privateEndpointVariable"
      - $ref: "#/definitions/apmDomainVariable"
  complexVariable:
    oneOf:
      - $ref: "#/definitions/listVariable"
      - $ref: "#/definitions/mapVariable"
      - $ref: "#/definitions/objectVariable"

  mapVariable: 
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type, valueType]
        properties:
          type:
            enum: [map]
          default:
            type: [string]
          valueType:
            type: [string]
        additionalProperties: true

  listVariable: 
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type, valueType]
        properties:
          type:
            enum: [list]
          default:
            type: [string]
          valueType:
            type: [string]
        additionalProperties: true

  objectVariable: 
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type, attributes]
        properties:
          type:
            enum: [object]
          default:
            type: string
          attributes:
            type: [array]
            items:
              type: string
        additionalProperties: true

  nonNegativeInteger:
    type: integer
    minimum: 0

  nonNegativeIntegerDefault0:
    allOf:
      - $ref: "#/definitions/nonNegativeInteger"
      - default: 0

  arrayVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [array]
          items:
            $ref: "#/definitions/variable"
          maxItems:
            $ref: "#/definitions/nonNegativeInteger"
          minItems:
            $ref: "#/definitions/nonNegativeIntegerDefault0"
          uniqueItems:
            type: boolean
            default: false
          contains:
            $ref: "#/definitions/variable"
        additionalProperties: true

  booleanVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [boolean]
          default:
            $ref: "#/definitions/booleanStatement"
            default: false
        additionalProperties: true

  enumVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [enum]
          enum:
            type: array
            items:
              type: string
          default:
            $ref: "#/definitions/booleanStatement"
          allowMultiple:
            type: boolean
            default: false
        additionalProperties: true

  integerVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [integer]
          default:
            type: integer
          multipleOf:
            type: number
            exclusiveMinimum: 0
          minimum:
            type: number
          maximum:
            type: number
          exclusiveMinimum:
            type: number
          exclusiveMaximum:
            type: number
        additionalProperties: true

  numberVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [number]
          default:
            type: number
          multipleOf:
            type: number
            exclusiveMinimum: 0
          minimum:
            type: number
          maximum:
            type: number
          exclusiveMinimum:
            type: number
          exclusiveMaximum:
            type: number
        additionalProperties: true

  stringVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [string]
          default:
            $ref: "#/definitions/booleanStatement"
          pattern:
            type: string
          maxLength:
            $ref: "#/definitions/nonNegativeInteger"
          minLength:
            $ref: "#/definitions/nonNegativeIntegerDefault0"
        additionalProperties: true

  multilineVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [text]
          default:
            $ref: "#/definitions/booleanStatement"
          pattern:
            type: string
          multiline:
            type: boolean
          maxLength:
            $ref: "#/definitions/nonNegativeInteger"
          minLength:
            $ref: "#/definitions/nonNegativeIntegerDefault0"
        additionalProperties: true

  fileVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [file]
        additionalProperties: true

  passwordVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [password]
          default:
            $ref: "#/definitions/booleanStatement"
          confirmation:
            $ref: "#/definitions/booleanStatement"
        additionalProperties: true

  datetimeVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [datetime]
          default:
            $ref: "#/definitions/booleanStatement"
        additionalProperties: true

  identityDomainVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:identity:domains:id]
          pattern:
            type: string
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true
  
  imageVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:image:id]
          pattern:
            type: string
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
              shape:
                type: string
                format: variablereference
              operatingSystem:
                type: string
                format: variablereference
              operatingSystemVersion:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  instanceShapeVariableWithFlex:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:instanceshapewithflex:name]
          pattern:
            type: string
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              imageId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
              availabilityDomain:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  instanceShapeVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:instanceshape:name]
          pattern:
            type: string
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              imageId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
              availabilityDomain:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  natGatewayVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:natgateway:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              vcnId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  instanceVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:instance:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  subnetVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:subnet:id]
          dependsOn:
            type: object
            required:
              - vcnId
              - compartmentId
            properties:
              vcnId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
              hidePublicSubnet:
                $ref: "#/definitions/booleanStatement"
              hidePrivateSubnet:
                $ref: "#/definitions/booleanStatement"
              hideRegionalSubnet:
                $ref: "#/definitions/booleanStatement"
              hideAdSubnet:
                $ref: "#/definitions/booleanStatement"
            additionalProperties: false
        additionalProperties: true

  serviceGatewayVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:servicegateway:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              vcnId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  logAnalyticsLogGroup:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:logan:loggroup:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  logAnalyticsScheduledTasks:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:logan:scheduledtask:id]
          dependsOn:
            type: object
            required:
              - compartmentId
              - taskType
            properties:
              compartmentId:
                type: string
                format: variablereference
              taskType:
                type: string
            additionalProperties: false
        additionalProperties: true

  logAnalyticsLogEntities:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:logan:logentity:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  logAnalyticsEntityTypes:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
        properties:
          type:
            enum: [oci:logan:entitytype:id]
        additionalProperties: true

  managementAgents:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:mgmt:agent:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  logAnalyticsSources:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:logan:source:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  nsgVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:core:nsg:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              vcnId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  vcnVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:core:vcn:id]
        additionalProperties: true

  availabilityDomainVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:availabilitydomain:name]
        additionalProperties: true

  compartmentVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:compartment:id]
          default:
            $ref: "#/definitions/booleanStatement"
        additionalProperties: true

  faultDomainVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:identity:faultdomain:name]
          dependsOn:
            type: object
            required:
              - compartmentId
              - availabilityDomainName
            properties:
              compartmentId:
                type: string
                format: variablereference
              availabilityDomainName:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  regionVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:region:name]
          default:
            $ref: "#/definitions/booleanStatement"
            default: ${session.region}
        additionalProperties: true

  dbSystemVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:database:dbsystem:id]
        additionalProperties: true

  dbHomeVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:database:dbhome:id]
          dependsOn:
            type: object
            required:
              - dbSystemId
              - compartmentId
            properties:
              dbSystemId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  dbHomeVersionVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:database:dbhome:dbversion]
          dependsOn:
            type: object
            required:
              - dbHomeId
            properties:
              dbHomeId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  databaseVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:database:database:id]
          dependsOn:
            type: object
            required:
              - dbHomeId
              - compartmentId
            properties:
              dbHomeId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  autonomousDatabaseVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:database:autonomousdatabase:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
              dbWorkload:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  autonomousDatabaseVersionVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:database:autonomousdatabaseversion:id]
          dependsOn:
            type: object
            properties:
              compartmentId:
                type: string
                format: variablereference
              dbWorkload:
                type: string
                format: variablereference
              additionalProperties: false
        additionalProperties: true

  autonomousContainerDBVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:database:autonomouscontainerdatabase:id]
        additionalProperties: true

  kmsVaultVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:kms:vault:id]
        additionalProperties: true

  kmsKeyVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:kms:key:id]
          dependsOn:
            type: object
            required:
              - compartmentId
              - vaultId
            properties:
              compartmentId:
                type: string
                format: variablereference
              vaultId:
                type: string
                format: variablereference
              protectionMode:
                type: string
                format: variablereference
              algorithm:
                type: string
                format: variablereference
              length:
                type: number
                format: variablereference
              curveId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  kmsSecretVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:kms:secret:id]
          dependsOn:
            type: object
            required:
              - compartmentId
            properties:
              compartmentId:
                type: string
                format: variablereference
              vaultId:
                type: string
                format: variablereference
              name:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  containerClusterVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:container:cluster:id]
        additionalProperties: true

  sshPublicKeyVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [oci:core:ssh:publickey]
        additionalProperties: true

  kubernetesVersionsVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:kubernetes:versions:id]
          dependsOn:
            type: object
            required:
              - clusterOptionId
              - compartmentId
            properties:
              clusterOptionId:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  volumeBackupPoliciesVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [oci:blockstorage:policies:id]
          dependsOn:
            type: object
            properties:
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  groupsVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:groups:id]
        additionalProperties: true

  dynamicGroupsVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:dynamicgroups:id]
        additionalProperties: true

  loadBalancerVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:loadbalancer:loadbalancer:id]
          pattern:
            type: string
        additionalProperties: true

  mountTargetsVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required:
          - type
          - dependsOn
        properties:
          type:
            enum: [oci:mount:target:id]
          dependsOn:
            type: object
            required:
              - compartmentId
              - availabilityDomain
            properties:
              availabilityDomain:
                type: string
                format: variablereference
              compartmentId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  tagVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:identity:tag:value]
        additionalProperties: true

  odsProjectVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:ods:project:id]
        additionalProperties: true

  privateEndpointVariable:
    allOf:
      - $ref: "#/definitions/baseVariable"
      - required: [type]
        properties:
          type:
            enum: [oci:resourcemanager:privateendpoint:id]
          dependsOn:
            type: object
            required:
              - compartmentId
              - vcnId
            properties:
              compartmentId:
                type: string
                format: variablereference
              vcnId:
                type: string
                format: variablereference
            additionalProperties: false
        additionalProperties: true

  apmDomainVariable:
    allOf:
      - $ref: "#/definitions/dependsOnCompartment"
      - required: [type]
        properties:
          type:
            enum: [oci:apm:domain:id]
        additionalProperties: true

  outputs:
    type: object
    additionalProperties:
      $ref: "#/definitions/output"

  output:
    oneOf:
      - $ref: "#/definitions/booleanOutput"
      - $ref: "#/definitions/numberOutput"
      - $ref: "#/definitions/stringOutput"
      - $ref: "#/definitions/copyableStringOutput"
      - $ref: "#/definitions/linkOutput"
      - $ref: "#/definitions/ocidOutput"
      - $ref: "#/definitions/mapOutput"
      - $ref: "#/definitions/jsonOutput"
      - $ref: "#/definitions/listOutput"
      - $ref: "#/definitions/csvOutput"

  outputGroups:
    type: array
    items:
      $ref: "#/definitions/outputGroup"

  outputGroup:
    type: object
    required:
      - title
      - outputs
    properties:
      title:
        type: string
      outputs:
        type: array
        items:
          type: string
    additionalProperties: true

  baseOutput:
    type: object
    properties:
      title:
        type: string
      description:
        type: string
      sensitive:
        type: boolean
        default: false
      format:
        type: string
      visible:
        type: boolean
        default: true
    additionalProperties: true

  booleanOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [boolean]
          value:
            type: boolean
        additionalProperties: true

  numberOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [number]
          value:
            type: number
        additionalProperties: true

  stringOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [string]
          value:
            type: string
        additionalProperties: true

  copyableStringOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [copyableString]
          value:
            type: string
        additionalProperties: true

  mapOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [map]
          value:
            type: object
        additionalProperties: true

  jsonOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [json]
          value:
            type: object
        additionalProperties: true

  listOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [list]
          value:
            type: array
        additionalProperties: true

  csvOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [csv]
          value:
            type: array
        additionalProperties: true

  linkOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [link]
          displayText:
            type: string
            minLength: 3
            maxLength: 45
          value:
            $ref: "#/definitions/url"
        additionalProperties: true

  ocidOutput:
    allOf:
      - $ref: "#/definitions/baseOutput"
      - required: [type]
        properties:
          type:
            enum: [ocid]
          value:
            $ref: "#/definitions/ocid"
        additionalProperties: true

Beispielschemadokument

Im Folgenden finden Sie ein Beispielschemadokument.

Beispiel
# Title shown in Application Information tab.
title: Sample input variable schema
# Sub Title shown in Application Information tab.
description: Sample description...
informationalText: Sample informational text to display in tab...
schemaVersion: 1.1.0
version: "20190304"

# URL of Logo Icon used on Application Information tab. Logo must be 130x130 pixels.
# (Optional)
logoUrl: https://cloudmarketplace.oracle.com/marketplace/content?contentId=53066708

# Used in Application Information tab to Hyperlink Title and Logo to the Marketplace
# Listing.
# Also used to link to Listing Usage section for "View Instructions".
# (Optional) If it is missing, Application Information uses the
# "marketplace-listing-id" tag for the same purpose.
source:
  type: marketplace
  reference: 16132843

locale: "en"
variableGroups:
  - title: "Node Configuration"
    variables:
      - targetCompartment
      - ${nodeCount}
      - ${nodeShapes}
      - ${availability}
  - title: "Application Details"
    variables:
      - ${username}
      - ${password}
      - ${dnsServers}
  - title: "Subnet"
    variables:
      - ${vcnCompartment}
      - ${myVcn}
      - ${subnetCompartment}
      - ${mySubnet}
      - ${mySubnetWithFilter}
      - ${hide_public_subnet}
      - ${hide_private_subnet}
      - ${hide_regional_subnet}
      - ${hide_ad_subnet}
  - title: "Network Configuration"
    variables:
      - ${service_gateway}
      - ${nat_gateway}
      - ${load_balancer}
      - ${myNsg}
      - ${Kubernetes_version}
      - ${backup_policies}
      - ${mount_target}
  - title: "Existing Groups"
    variables:
      - ${iam_groups_use_existing}
  - title: "Identity"
    variables:
      - ${iam_groups}
      - ${iam_dynamic_groups}
      - ${iam_domains}
  - title: "Database"
    variables:
      - ${dbCompartment}
      - ${myDbSystem}
      - ${myDbHome}
      - ${myDb}
      - ${myAutonomousDB}
      - ${myAutonomousDBVersion}
  - title: "Advanced"
    variables:
      - ${myImageId}
      - ${myInstance}
      - ${myShape}
      - ${myCompatibleShape}
      - ${myCompatibleShapeBasedOnAd}
      - ${multilineText}
    visible: true
  - title: "Complex Variables"
    variables:
      - ${shapesList}
      - ${subnet_ocids}
      - ${compute_instance_config}
    visible: true
  - title: "Hidden"
    variables:
      - ${myRegion}
    visible: false
  - title: "Existing Vcn"
    variables:
      - ${myVcn}
    visible:
      or:
        - ${useExistingVcn}
        - and:
            - and:
                - true
                - true
            - not:
                - false
  - title: "Password can't be 'password'!"
    variables:
      - ${password}
  - title: "Complex Conditional Section"
    variables:
      - ${myVcn}
    visible:
      or:
        - ${useExistingVcn}
        - and:
            - and:
                - true
                - true
            - not:
                - false
  - title: "Equality Conditional Section"
    variables:
      - ${myVcn}
    visible:
      eq:
        - ${objectStorageTier}
        - standard
  - title: "Less than Conditional Section"
    variables:
      - ${myVcn}
    visible:
      lt:
        - ${availability}
        - 5
  - title: "Less than or Equal Conditional Section"
    variables:
      - ${myVcn}
    visible:
      le:
        - ${availability}
        - 4
  - title: "Greater than Conditional Section"
    variables:
      - ${myVcn}
    visible:
      gt:
        - ${availability}
        - 5
  - title: "Greater than or Equal Conditional Section"
    variables:
      - ${myVcn}
    visible:
      ge:
        - ${availability}
        - 4
  - title: "Vault section"
    variables:
      - ${myVault}
      - ${myVaultKey}
      - ${mode}
      - ${myCompatibleKey}
      - ${algo}
      - ${myCompatibleKeyBasedOnAlgo}
      - ${mySecret}
      - ${myVaultSecret}
  - title: "DataScience"
    variables:
      - ${ods_project_ocid}
  - title: "Generic File"
    variables:
      - ${generic_file}
  - title: "Resource Tagging"
    variables:
      - ${tag}
  - title: "Resource Manager Section"
    variables:
      - ${private_endpoint_ocid}
  - title: "APM Domain Selection"
    variables:
      - ${apmDomain}

variables:
  # string field
  username:
    type: string
    minLength: 1
    maxLength: 255
    pattern: "^[a-z][a-zA-Z0-9]+$"
    # title is used as the label if present
    title: Username
    # description used as the tooltip if present
    description: Enter your username
    default: admin
    required: true

  # password field
  password:
    description: Really Bad Password Field
    type: password
    pattern: "^[a-zA-z]{1,8}$"
    required: true

  # integer field
  nodeCount:
    type: integer
    description: Number of Nodes
    minimum: 3
    maximum: 12
    multipleOf: 3

  # non-integer number field
  availability:
    type: number
    default: 99.7
    maximum: 100
    minimum: 0

  # string enum
  objectStorageTier:
    type: enum
    enum:
      - archive
      - standard
    allowMultiple: false

  # input a list, each element must be an ip addresses
  dnsServers:
    type: array
    items:
      type: string
      pattern: "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
    minItems: 1
    uniqueItems: true
    default: [8.8.8.8, 8.8.4.4]

  # datetime picker
  expireDate:
    type: datetime

  # compartmentId dynamic dropdown, targetCompartment present in input variables
  targetCompartment:
    type: oci:identity:compartment:id

  # ---- subnet picker ---- #

  useExistingVcn:
    type: boolean

  vcnCompartment:
    type: oci:identity:compartment:id
    visible: ${useExistingVcn}

  myVcn:
    type: oci:core:vcn:id
    dependsOn:
      compartmentId: ${vcnCompartment}
    visible:
      or:
        - ${useExistingVcn}
        - and:
            - and:
                - true
                - true
            - not:
                - false

  subnetCompartment:
    type: oci:identity:compartment:id
    visible: ${useExistingVcn}

  mySubnet:
    type: oci:core:subnet:id
    dependsOn:
      compartmentId: ${subnetCompartment}
      vcnId: ${myVcn}
    visible: ${useExistingVcn}

  mySubnetWithFilter:
    type: oci:core:subnet:id
    dependsOn:
      compartmentId: ${subnetCompartment}
      vcnId: ${myVcn}
      hidePublicSubnet: ${hide_public_subnet}
      hidePrivateSubnet: ${hide_private_subnet}
      hideRegionalSubnet: ${hide_regional_subnet}
      hideAdSubnet: ${hide_ad_subnet}
    visible: ${useExistingVcn}

  hide_public_subnet:
    type: boolean
    default: false

  hide_private_subnet:
    type: boolean
    default: false

  hide_regional_subnet:
    type: boolean
    default: false

  hide_ad_subnet:
    type: boolean
    default: false

  load_balancer:
    type: oci:loadbalancer:loadbalancer:id
    pattern: ^(10)Mbps.*$
    title: Existing LBaaS for "Application" Evaluation
    required: true
    dependsOn:
      compartmentId: ${vcnCompartment}

  Kubernetes_version:
    type: oci:kubernetes:versions:id
    title: Kubernetes version
    description: The Oracle cloud kubernetes version for tenancy.
    required: true
    visible: true
    dependsOn:
      compartmentId: ${vcnCompartment}
      clusterOptionId: "all"

  backup_policies:
    type: oci:blockstorage:policies:id
    title: Backup Policy
    description: The Oracle Cloud Backup Policy for tenancy.
    required: true

  mount_target:
    type: oci:mount:target:id
    title: Mount target
    description: The Oracle Cloud mount target
    dependsOn:
      compartmentId: ${targetCompartment}
      availabilityDomain: ${myAvailabilityDomain}

  myNsg:
    type: oci:core:nsg:id
    title: "Network Security Group"
    description: "Network Security Group description"
    dependsOn:
      compartmentId: ${vcnCompartment}

  service_gateway:
    type: oci:core:servicegateway:id
    title: NAT Gateway
    dependsOn:
      compartmentId: ${vcnCompartment}
      vcnId: ${myVcn}

  nat_gateway:
    type: oci:core:servicegateway:id
    title: NAT Gateway
    dependsOn:
      compartmentId: ${vcnCompartment}
      vcnId: ${myVcn}

  iam_groups_use_existing:
    type: boolean
    title: Use existing Groups
    required: true
    default: false

  iam_groups:
    type: oci:identity:groups:id
    title: Group Name
    dependsOn:
      compartmentId: ${targetCompartment}
    visible:
      or:
        - ${iam_groups_use_existing}
        - and:
            - and:
                - true
                - true
            - not:
                - false

  iam_dynamic_groups:
    type: oci:identity:dynamicgroups:id
    title: Dynamic Group Name
    dependsOn:
      compartmentId: ${targetCompartment}
    visible:
      or:
        - ${iam_groups_use_existing}
        - and:
            - and:
                - true
                - true
            - not:
                - false
  
  iam_domains:
    type: oci:identity:domains:id
    title: Domain Name
    dependsOn:
      compartmentId: ${targetCompartment}
    visible:
      or:
        - ${iam_groups_use_existing}
        - and:
            - and:
                - true
                - true
            - not:
                - false

  myRegion:
    type: oci:identity:region:name
    visible: false

  myImageId:
    type: oci:core:image:id
    dependsOn:
      compartmentId: ${targetCompartment}

  myShape:
    type: oci:core:instanceshape:name
    dependsOn:
      compartmentId: ${targetCompartment}

  myInstance:
    type: oci:core:instance:id
    dependsOn:
      compartmentId: ${targetCompartment}

  myCompatibleShape:
    type: oci:core:instanceshape:name
    dependsOn:
      compartmentId: ${targetCompartment}
      imageId: ${myImageId}
    visible:
      or:
        - ${useExistingVcn}
        - and:
            - and:
                - true
                - true
            - not:
                - false

  myCompatibleShapeBasedOnAd:
    type: oci:core:instanceshape:name
    dependsOn:
      compartmentId: ${targetCompartment}
      availabilityDomain: ${myAvailabilityDomain}
    visible:
      or:
        - ${useExistingVcn}
        - and:
            - and:
                - true
                - true
            - not:
                - false

  myAvailabilityDomain:
    type: oci:identity:availabilitydomain:name
    dependsOn:
      compartmentId: ${targetCompartment}
    visible: complexExpression

  myFaultdomain:
    type: oci:identity:faultdomain:name
    dependsOn:
      compartmentId: ${targetCompartment}
      availabilityDomainName: ${myAvailabilityDomain}

  dbCompartment:
    type: oci:identity:compartment:id

  myDbSystem:
    type: oci:database:dbsystem:id
    dependsOn:
      compartmentId: ${dbCompartment}

  myDbHome:
    type: oci:database:dbhome:id
    dependsOn:
      dbSystemId: ${myDbSystem}
      compartmentId: ${dbCompartment}

  myDbHomeVersion:
    type: oci:database:dbhome:dbversion
    dependsOn:
      dbHomeId: ${myDbHome}

  myDb:
    type: oci:database:database:id
    dependsOn:
      dbHomeId: ${myDbHome}
      compartmentId: ${dbCompartment}

  myAutonomousDB:
    type: oci:database:autonomousdatabase:id
    dependsOn:
      compartmentId: ${dbCompartment}
      dbWorkload: "DW"

  myAutonomousDBVersion:
    type: oci:database:autonomousdatabaseversion:id
    title: AutonomousDatabaseVersionTitle
    description: AutonomousDatabaseVersionDescription
    required: true
    default: "19c"
    dependsOn:
      compartmentId: ${compartment_ocid}
      dbWorkload: "AJD"

  container_cluster_ocid:
    type: oci:container:cluster:id
    required: true
    title: OKE Cluster
    description: Kubernetes cluster managed by OCI Container Engine for Kubernetes
    dependsOn:
      compartmentId: ${compartment_ocid}

  myVault:
    type: oci:kms:vault:id
    title: "vault"
    description: "vault"
    dependsOn:
      compartmentId: ${targetCompartment}

  myVaultKey:
    type: oci:kms:key:id
    title: "key"
    description: "key"
    dependsOn:
      compartmentId: ${targetCompartment}
      vaultId: ${myVault}

  mode:
    type: enum
    enum:
      - Hsm
      - Software
    allowMultiple: false

  myCompatibleKey:
    type: oci:kms:key:id
    title: "key"
    description: "key"
    dependsOn:
      compartmentId: ${targetCompartment}
      vaultId: ${myVault}
      protectionMode: ${mode}

  algo:
    type: enum
    enum:
      - AES
      - RSA
      - ECDSA
    allowMultiple: true

  myCompatibleKeyBasedOnAlgo:
    type: oci:kms:key:id
    title: "key"
    description: "key"
    dependsOn:
      compartmentId: ${targetCompartment}
      vaultId: ${myVault}
      protectionMode: ${mode}
      algorithm: ${algo}

  mySecret:
    type: "oci:kms:secret:id"
    title: "secret"
    description: "secret"
    dependsOn:
      compartmentId: ${targetCompartment}

  myVaultSecret:
    type: "oci:kms:secret:id"
    title: "secret"
    description: "secret"
    dependsOn:
      compartmentId: ${targetCompartment}
      vaultId: ${myVault}

  ods_project_ocid:
    type: oci:ods:project:id
    required: true
    title: odsProject
    description: "Select ods project from list"
    dependsOn:
      compartmentId: ${targetCompartment}

  generic_file:
    type: file
    required: true
    title: GenericFile
    description: "Drop a raw file (stored as base64 string data)"

  tag:
    type: oci:identity:tag:value
    required: true
    title: Tagging
    description: Tag value for resource created
    dependsOn:
      compartmentId: ${targetCompartment}

  private_endpoint_ocid:
    type: oci:resourcemanager:privateendpoint:id
    required: true
    title: privateEndpoint
    description: "Resource Manager Private Endpoint for Private Access"
    dependsOn:
      compartmentId: ${targetCompartment}
      vcnId: ${vcnId}

  multilineText:
    type: text
    required: false
    multiline: true
    title: Multi-line value
    description: Multi-line value
    default: "First line\nSecond line\nThird line"

  apmDomainVariable:
    type: oci:apm:domain:id
    title: "APM Domain"
    description: "APM Domain"
    dependsOn:
      compartmentId: ${targetCompartment}

  # ---- Complex Data Type: Map Variable ---- #
  # map variable with subnet OCIDs for dev, test, prod
  subnet_ocids: 
    type: map
    valueType: subnet_ocid
    title: "Subnet OCIDs"
    description: "Subnet Map containing dev, test and prod subnet OCIDs"
    default: "{\"dev\":\"ocid1.subnet.oc1..aaaaaaaadevsubnet\",\"test\":\"ocid1.subnet.oc1..aaaaaaaatestsubnet\",\"prod\":\"ocid1.subnet.oc1..aaaaaaaaprodsubnet\"}"

  subnet_ocid:
    type: string
    visible: false
    
  # ---- Complex Data Type: List Variable ---- #
  # list variable with dynamic valueType variable 
  shapesList:
    type: list
    valueType: shape
    title: "List of Shapes"
    required: true
    description: "List of Shapes in the target Compartment"

  shape: 
    type: oci:core:instanceshape:name
    visible: false
    dependsOn:
      compartmentId: ${targetCompartment}
  # ---- Complex Data Type: Object Variable ---- #
  # an object variable for compute instance configuration 
  compute_instance_config:
    type: object
    title: "Compute Instance Configuration"
    attributes:
      - availabilityDomain
      - displayName
      - imageID
    description: "Configuration for an OCI compute instance"
    default: "{\"availability_domain\": \"us-phoenix-1\", \"display_name\":\"Instance1\", \"image_id\":\"ocid1.image.oc1..aaaaaaaadevimage\"}"

  availabilityDomain:
    type: oci:identity:availabilitydomain:name
    actualName: availability_domain
    visible: false
    dependsOn:
      compartmentId: ${targetCompartment}

  displayName: 
    type: string 
    actualName: display_name 
    visible: false   

  imageID: 
    type: oci:core:image:id 
    actualName: image_id 
    visible: false
    dependsOn: 
      compartmentId: ${targetCompartment}

# Used to present outputs with more refinement on the Application Information tab.
# The Application Information tab is only shown if the schema has a "title",
# "description", and at least one output in this "outputs" section.
#
# type:
#   - boolean
#   - string
#   - number
#   - link - contains url that can be hyperlinked.  If type is not specified and the
#            value is a proper url, this type is assumed.
#   - ocid - contains an OCID.  An attempt is made to hyperlink it to the designated
#            resource in the console.
#   - csv - synonym for list.  Array of values converted to a comma separated list.
#   - json - synonym for map.  Map of key / values converted to JSON.
#   - list - array of values converted to a comma separated list.
#   - map - map of key / values converted to JSON.
#
# displayText: used in links to give text displayed instead of value
# title: friendly label
# visible: if false, this ouptut is not shown in the outputs section of Application Information.
#          It can still be used as the primaryOutputButton.
outputs:
  controlCenterUrl:
    type: link
    title: Control Center
    displayText: Control Center
    visible: false

  schemaRegistryUrl:
    type: link
    title: Schema Registry
    displayText: Schema Registry

  schemaRegistryPublicIps:
    type: csv
    title: Public IPs

  schemaRegistryLoadBalancer:
    type: ocid
    title: Load Balancer

  brokerPublicIps:
    type: csv

  connectUrl:
    type: link
    title: Connect
    displayText: Connect

  connectPublicIps:
    type: csv
    title: Public IPs

  restUrl:
    type: link
    title: Rest API

# primaryOutputButton is a reference to a link output that creates a primary button
# on the Application Information tab.
# (Optional) if not provided, no primary button is shown.  Also if the output
# referenced is not a link output, no button is shown.
primaryOutputButton: ${controlCenterUrl}

# Used to group Outputs.  Any outputs not included in these defined groups, are
# included in a default group labelled "Outputs".
# (Optional) if not groups are given, outputs are not grouped at all.
outputGroups:
  - title: Schema Registry
    outputs:
      - ${schemaRegistryUrl}
      - ${schemaRegistryPublicIps}
      - ${schemaRegistryInstances}
      - ${schemaRegistryLoadBalancer}

  - title: Broker / Connect
    outputs:
      - ${brokerPublicIps}
      - ${brokerInstances}
      - ${connectUrl}
      - ${connectPublicIps}
      - ${restUrl}

So steuern Sie Konsolenelemente

Verwenden Sie ein Schemadokument, um die Anzeige von Stackvariablen und anderen Elementen auf Seiten mit Stackdetails in der Konsole zu steuern.

Dieses Anzeigesteuerelement ist für Stacks verfügbar, die aus einer Terraform-Konfigurationsdatei erstellt wurden. Mit einem Schemadokument können Sie definieren, wie Variablen während der Stackerstellung aussehen und sich verhalten und welchen Text in der Registerkarte Anwendungsinformationen für einen erstellten Stack angezeigt wird.

Im Folgenden werden Konsolenanzeigeelemente aufgeführt, die das Schemadokument steuert. Um relevante Anweisungen und Beispiele anzuzeigen, erweitern Sie ein Anzeigeelement, an dem Sie interessiert sind.

Feldlabel und -beschreibung

So rendern Sie ein Feldlabel und eine Beschreibung für eine Variable:

  • Fügen Sie die Zeilen title: <field_label> und description: <field_description> hinzu.

Beispielbild für ein Variablenfeldlabel und eine Beschreibung:

Feld für das erweiterte Logging mit der Beschreibung "Erweitertes Logging aktivieren oder deaktivieren (VCN-Flowlogs und/oder Auditlogs)".

Beispieldeklaration für ein Variablenfeldlabel und eine Beschreibung:

  advanced_logging_option:
    type: enum
    description: "Enable or disable advanced logging (VCN flow logs and/or audit logs)."
    title: "Advanced logging"
Formatierte Variablenbeschreibungen

Die folgenden Formate werden in einer Variablenbeschreibung unterstützt:

Format Kennung
Stark (fett) <strong>...</strong>
Schwerpunkt (Kursivschrift) <em>...</em>
Link <a href='...'>...</a>
Sie können auch unterstützte Formatierungen kombinieren. Beispiele:
  • Stark und betont (fett und kursiv): <strong><em>...</em></strong> ODER <em><strong>...</strong></em>
  • Stark und betont im Linktext (fett und kursiv im Linktext): <a href='...'><strong>...</strong><em>...</em></a>

Beispiel für eine Beschreibung der formatierten Variablen:

container_cluster_ocid:   
 type: oci:container:cluster:id   
 required: true   
 title: OKE Cluster   
 description: "<strong>Kubernetes cluster</strong> managed by <a href="https://www.oracle.com/cloud/cloud-native/kubernetes-engine/">OCI Container Engine</a> for Kubernetes"
Standardwert

So rendern Sie eine Variable mit einem Standardwert:

  • Fügen Sie die Zeile default: <default-value> hinzu.

Beispielbild für eine Variable mit einem Standardwert:

Standardwert "DataScienceGroup" für den Variablengruppennamen für Sicherheits-Policys.

Beispieldeklaration für einen Standardwert:

  ods_group_name:
    type: string
    title: ${Messages.solutionsHub.solutions.dataScience.variables.ods_group_name.title()}
    description: ${Messages.solutionsHub.solutions.dataScience.variables.ods_group_name.description()}
    required: true
  # provide a default value
    default: "DataScienceGroup"
Mehrfaches Textfeld

So rendern Sie eine Variable als mehrzeiliges Textfeld:

  • Fügen Sie die Zeile multiline: true hinzu.

So deklarieren Sie einen Standardwert mit mehreren Zeilen:

  • Trennen Sie jede Zeile durch \n.

Beispielbild für eine Variable, die als mehrzeiliges Textfeld gerendert wird, wobei zwei Textzeilen eingegeben werden:

Mehrzeiliges Textfeld mit zwei Textzeilen.

Beispieldeklaration für ein mehrzeiliges Textfeld:

  otherNames:
    type: text
    required: false
    multiline: true
    title: "Other Names"
    description: "Enter one name per line."
    default: "Name1\nName2"
Gruppe und Reihenfolge

So rendern Sie eine Gruppe (Box) von Variablen mit den Variablen in einer vorgeschriebenen Reihenfolge:

  • Fügen Sie einen variableGroups-Block hinzu.
  • Fügen Sie diesem Block eine title-Zeile hinzu.
  • Fügen Sie einen variables-Block zu variableGroups hinzu.
  • Fügen Sie Variablen in der gewünschten Reihenfolge zum Block variables hinzu.

Beispielbild für eine Gruppe von Variablen:

Konfiguration der Variablengruppe WordPress mit Feldern für Benutzername und Kennwort.

Beispieldeklaration für eine Gruppe von Variablen mit einer vorgegebenen Reihenfolge:

variableGroups:
  - title: "WordPress configuration"
    variables:
    - wp_admin_user
    - wp_admin_password
SSH-Schlüsselkontrolle
So rendern Sie eine Variable als SSH-Schlüsselsteuerelement:
  • Fügen Sie die Zeile type: oci:core:ssh:publickey hinzu.

Beispielimage für ein SSH-Schlüsselsteuerelement:

SSH-Schlüsselkontrolle.

Beispieldeklaration für ein SSH-Schlüsselsteuerelement:

  ssh_public_key:
    title: SSH public key
    description: Public SSH key to be included in the ~/.ssh/authorized_keys file for the default user on the instance
    # renders variable as an SSH key control
    type: oci:core:ssh:publickey
    additionalProps:
      allowMultiple: true
    required: false
    default: [""]
    pattern: "((^(ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+\/]+[=]{0,3})( [^,]*)?)(,((ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+\/]+[=]{0,3})( [^,]*)?)*$"
Kontrolle

So rendern Sie eine Variable als Dateikontrolle:

  • Fügen Sie die Zeile type: file hinzu.

    Hinweis

    Die hochgeladene Datei wird im Format Base64 gespeichert. Um die Datei zu verwenden, dekodieren Sie die Ausgabe. Beispiel: Fügen Sie den folgenden Code zu einer outputs.tf-Datei in der Terraform-Konfiguration hinzu.
    output "generic_file_raw" {
      value = base64decode(var.generic_file)
    }

Beispielbild für eine Dateikontrolle:

Dateikontrolle.

Beispieldeklaration für eine Dateikontrolle:

  generic_file:
    type: file
    title: generic_file
    description: Drop any file or browse
    required: true
Tagging-Steuerung

So rendern Sie eine Variable als Tagging-Steuerelement:

  • Fügen Sie die Zeile type: oci:identity:tag:value hinzu.

    Hinweis

    Um Tagwerte in der Konsole vorab auszufüllen, greifen Sie über die Terraform-Konfiguration auf die Werte zu. Beispiel: Fügen Sie den folgenden Code zu einer main.tf-Datei in der Terraform-Konfiguration hinzu.
    resource "oci_logging_log_group" "sample_log_group" {
      compartment_id = var.compartment_ocid
      display_name   = "sample_log_group"
      description    = "Prepopulated tag values"
      freeform_tags  = var.tag_value.freeformTags
      defined_tags   = var.tag_value.definedTags
    }

Beispielimage für ein Taggingsteuerelement:

Taggingsteuerung.

Beispieldeklaration für eine Tagging-Steuerung:

  tag_value:
    type: oci:identity:tag:value
    title: Tags
    required: true
Komplexe Datentypen

In diesem Abschnitt werden komplexe Datentypen für Listen-, Karten- und Objektvariablen beschrieben. Es wird empfohlen, ein Feld title für jeden komplexen Datentyp aufzunehmen.

Variablenrichtlinien auflisten und zuordnen:

  • Definieren Sie das Feld valueType, wenn Sie die Schemavariable angeben.
  • Setzen Sie für jede valueType-Variable visible auf false.

Richtlinien für Objektvariablen:

  • Nehmen Sie ein Feld attributes auf, um die Attributvariablen des Objekts zu definieren.
  • Fügen Sie für jede attribute-Variable ein Feld actualName ein, das dem in der Terraform-Datei für die Objektvariable definierten Attributnamen entspricht.
  • Setzen Sie für jede attribute-Variable visible auf false.

Beispieldeklarationen aus Beispielschemadokument:

  # ---- Complex Data Type: Map Variable ---- #
  # map variable with subnet OCIDs for dev, test, prod
  subnet_ocids: 
    type: map
    valueType: subnet_ocid
    title: "Subnet OCIDs"
    description: "Subnet Map containing dev, test and prod subnet OCIDs"
    default: "{\"dev\":\"ocid1.subnet.oc1..aaaaaaaadevsubnet\",\"test\":\"ocid1.subnet.oc1..aaaaaaaatestsubnet\",\"prod\":\"ocid1.subnet.oc1..aaaaaaaaprodsubnet\"}"

  subnet_ocid:
    type: string
    visible: false
    
  # ---- Complex Data Type: List Variable ---- #
  # list variable with dynamic valueType variable 
  shapesList:
    type: list
    valueType: shape
    title: "List of Shapes"
    required: true
    description: "List of Shapes in the target Compartment"

  shape: 
    type: oci:core:instanceshape:name
    visible: false
    dependsOn:
      compartmentId: ${targetCompartment}
  # ---- Complex Data Type: Object Variable ---- #
  # an object variable for compute instance configuration 
  compute_instance_config:
    type: object
    title: "Compute Instance Configuration"
    attributes:
      - availabilityDomain
      - displayName
      - imageID
    description: "Configuration for an OCI compute instance"
    default: "{\"availability_domain\": \"us-phoenix-1\", \"display_name\":\"Instance1\", \"image_id\":\"ocid1.image.oc1..aaaaaaaadevimage\"}"

  availabilityDomain:
    type: oci:identity:availabilitydomain:name
    actualName: availability_domain
    visible: false
    dependsOn:
      compartmentId: ${targetCompartment}

  displayName: 
    type: string 
    actualName: display_name 
    visible: false   

  imageID: 
    type: oci:core:image:id 
    actualName: image_id 
    visible: false
    dependsOn: 
      compartmentId: ${targetCompartment}
Dynamische Vorabauffüllung

So füllen Sie Variablen dynamisch mit Werten basierend auf Abhängigkeiten aus:

Beispielbild für eine dynamisch vorab aufgefüllte Variable:

Im Voraus aufgefüllte Werte für das Feld "Virtuelles Cloud-Netzwerk (VCN)"

Beispieldeklaration für eine dynamisch vorab aufgefüllte Variable:

    vcn_ocid:
    "title": "Virtual cloud network (VCN)",
    "description": "The virtual cloud network to use with the compute instance. You can use the subnets template to create a VCN."
    # prepopulates available values for VCN
      type: oci:core:vcn:id
    # determines values for prepopulation from selected compartment
      dependsOn:
        compartmentId: compartment_ocid
      required: true
      default: ""

Beispieldeklaration für private Endpunkte:

  private_endpoint_ocid:
    type: oci:resourcemanager:privateendpoint:id
    required: true
    title: "Resource Manager Private Endpoint"
    description: "Resource Manager Private Endpoint for Private Access"
    dependsOn:
      compartmentId: ${privateEndpointCompartmentOCID}
      vcnId: ${privateEndpointVCNOCID}

Beispieldeklarationen für VCN je nach Compartment, wobei das Subnetz sowohl vom Compartment als auch vom VCN abhängig ist:

  vcnCompartment:
    # prepopulates available values for compartment
    type: oci:identity:compartment:id
 
myVcn:
    # prepopulates available values for VCN
    type: oci:core:vcn:id
    # determines values for VCN prepopulation from selected compartment
    dependsOn:
      compartmentId: ${vcnCompartment}
 
subnetCompartment:
    # prepopulates available values for compartment
    type: oci:identity:compartment:id
 
mySubnet:
    # prepopulates available values for subnet
    type: oci:core:subnet:id
    # determines values for subnet prepopulation from selected compartment and VCN
    dependsOn:
      compartmentId: ${subnetCompartment}
      vcnId: ${myVcn}

Bildbeispieldeklaration 1, wobei das Bild nur vom Compartment abhängt (das eine obligatorische Feld dependsOn):

  instance_image:    
    title: Image    
    description: Image    
    type: oci:core:image:id    
    required: true    
    dependsOn:      
       compartmentId: ${compartment_ocid}

Imagebeispieldeklaration 2, wobei das Image von Compartment, Betriebssystem, Betriebssystemversion und Ausprägung abhängig ist:

  instance_image:    
    title: Image    
    description: Image    
    type: oci:core:image:id    
    required: true    
    dependsOn:      
       compartmentId: ${compartment_ocid}      
       operatingSystem: "Oracle Linux"      
       operatingSystemVersion: "7.8"
       shape: "<shape name>"
Aufgezählte Werte (Einzelwertauswahl)

So gerendern Sie Aufzählungswerte für eine Variable (Sie können nur einen Wert auswählen):

  • Fügen Sie die Zeilen type: enum hinzu, und fügen Sie einen enum-Block hinzu.

Beispielbild für eine Variable mit aufgezählten Werten, die eine Auswahl eines einzelnen Wertes zulassen:

Aufgezählte Werte für das Feld "Erweiterte Protokollierung".

Beispieldeklaration für eine Variable mit aufgezählten Werten:

  advanced_logging_option:
    title: "Advanced logging"
    description: "Enable or disable advanced logging (VCN flow logs and/or audit logs)."
    type: enum
    # enumerated values
    enum:
    - AUDIT_LOGS
    - FLOW_LOGS
    - BOTH
    - NONE
    default: NONE
    required: true
Aufgezählte Werte (Mehrfachwertauswahl)

So geben Sie Aufzählungswerte für eine Variable wieder (Sie können mehrere Werte auswählen):

  • Fügen Sie die Zeilen type: enum hinzu, und fügen Sie einen enum-Block hinzu.
  • Fügen Sie die Zeilen additionalProps: hinzu, und fügen Sie einen allowMultiple:true-Block hinzu.

Beispielbild für eine Variable mit aufgezählten Werten, die eine Auswahl mehrerer Werte zulassen:

Diese Abbildung zeigt eine Variable mit aufgezählten Werten, in der mehrere Werte ausgewählt werden können.

Beispieldeklaration für eine Variable mit aufgezählten Werten (Mehrfachwertauswahl):

    attachment_type:
      type: enum
      title: "Attachment type"
      additionalProps:
        allowMultiple: true
      default: "iscsi"
      # enumerated values (multiple value selection)
      enum:
        - "iscsi"
        - "paravirtualized"
Kontrollkästchen

So rendern Sie eine Variable als Kontrollkästchen:

  • Fügen Sie die Zeile type: boolean hinzu.

Beispielbild für eine Kontrollkästchenvariable:

Kontrollkästchen-Rendering für Variable "Vault-Unterstützung aktivieren?"

Beispieldeklaration für eine Kontrollkästchenvariable:

  ods_vcn_use_existing:
    # renders variable as a check box
    type: boolean
    title: "Enable vault support?"
    description: "Use a vault to store secrets and manage encrypted resources."
    required: true
    default: false
Sichtbarkeitsabhängigkeit
Hinweis

Gruppen haben eine höhere Priorität als die einzelnen Variablen der Gruppen. Beispiel: Wenn eine Variable in einer nicht sichtbaren Gruppe sichtbar ist, ist die gesamte Gruppe nicht sichtbar.

Unterstützte Vorgänge:

  • and
  • eq (gleich)
  • ge (größer als oder gleich)
  • gt (größer als)
  • le (kleiner als oder gleich)
  • lt (kleiner als)
  • not
  • or
So blenden Sie Variablen oder Variablengruppen je nach anderen Variablen ein oder aus:
  • Fügen Sie die Zeile visible: <other_variable> hinzu.

Beispiel für die Variable Vorhandenen Vault verwenden?, deren Sichtbarkeit von der Benutzerauswahl für die Variable Vault-Unterstützung aktivieren? abhängt:

"Vorhandenen Vault verwenden?" ist nur sichtbar, wenn "Vault-Unterstützung aktivieren?" ausgewählt ist.

Beispieldeklarationen, bei denen die Felder "Anwendungsname" und "API-Gateway-Name" (functions_app_name und apigateway_name) nur angezeigt werden, wenn das Kontrollkästchen "Provisioning-Funktionen und API-Gateway?" (enable_functions_apigateway) aktiviert ist:

  enable_vault:
    type: boolean
    title: "Enable vault support?"
    description: "Use a vault to store secrets and manage encrypted resources."
    required: true
    default: false

  ods_use_existing_vault:
    type: boolean
    title: "Use existing vault?"
    description: "Use a pre-existing vault in the current compartment."
    required: true
    default: false
  # show only when enable_vault variable is selected
    visible: enable_vault
Kennwort
So rendern Sie eine Variable als Kennwort:
  • Fügen Sie die Zeile type: password hinzu.
So fordern Sie eine erneute Eingabe zur Bestätigung des eingegebenen Kennworts an:
  • Fügen Sie die Zeile confirmation: true hinzu.

Beispielimage für eine Kennwortvariable, die bestätigt werden muss:

Bestätigungs-Prompt für ein Kennwort (WordPress-Administratorkennwort).

Beispieldeklaration für eine Kennwortvariable, die bestätigt werden muss:

  wp_admin_password:
    title: "WordPress administrator password"
    description: "The password must be more than 8 characters and include at least one uppercase letter, one lowercase letter, one number, and one of the following special characters: !@#%^*_+-:?.,[]{}"
    # renders variable as a password field
    type: password
    # renders a second field to re-enter the password for confirmation
    confirmation: true
    pattern: "^(?=.*[!@#%^*_+\\-:?.,\\[\\]\\{\\}])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[$\\(\\)]).{8,32}$"
    required: true
Erforderliche Variablen

So fordern Sie einen Wert für eine Variable an:

  • Fügen Sie die Zeile required: true hinzu.

Beispielbild für eine erforderliche Variable mit Validierungswarnung:

Validierungswarnung für eine erforderliche Variable (virtuelles Cloud-Netzwerk (VCN)), die nicht aufgefüllt wurde.

Beispieldeklaration für eine erforderliche Variable:

    vcn_ocid:
    "title": "Virtual cloud network (VCN)",
    "description": "The virtual cloud network to use with the compute instance. You can use the subnets template to create a VCN."
      type: oci:core:vcn:id
      dependsOn:
        compartmentId: compartment_ocid
    # displays validation warning if no value is selected or entered
      required: true
      default: ""
Optionale Variable

So markieren Sie eine Variable als optional:

  • Fügen Sie die Zeile required: false hinzu.

Beispielbild für eine optionale Variable:

Die Markierung "Optional" wird rechts neben dem Titel der Variablen angezeigt: Private IP.

Beispieldeklaration für eine optionale Variable:

    private_ip:
      title: "Private IP"
      description: "Private IP address of your choice to assign to the VNICs."
      type: string
      # displays "Optional" marking to right of field label
      required: false
      default: ""
Validierungsmuster

So validieren Sie den für eine Variable eingegebenen Wert anhand eines regulären Ausdrucksmusters:

  • Fügen Sie die Zeile pattern: <regular-expression> hinzu.

    <regular-expression> ist das Validierungsmuster, das für den zu validierenden Wert spezifisch ist.

    Beispiel für ein Hyperlinkmuster: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

Beispielbild für einen Validierungsfehler für einen eingegebenen Wert:

Validierungsfehler für einen eingegebenen Wert (Administratorkennwort WordPress).

Beispieldeklaration für eine Variable mit einem Validierungsmuster:

  wp_admin_password:
    title: "WordPress administrator password"
    description: "The password must be more than 8 characters and include at least one uppercase letter, one lowercase letter, one number, and one of the following special characters: !@#%^*_+-:?.,[]{}"
    type: password
    confirmation: true
    # validate entered value against alphanumeric regular expression
    pattern: "^(?=.*[!@#%^*_+\\-:?.,\\[\\]\\{\\}])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[$\\(\\)]).{8,32}$"
    required: true
Sensible Variablen (Registerkarte "Ausgaben", Registerkarte "Anwendungsinformationen")

Die Ausgabe einer Variable mit sensiblen Markierungen wird als <sensitive> mit Option Entsperren auf der Registerkarte Anwendungsinformationen angezeigt. Diese Registerkarte wird auf den Seiten Jobdetails und Stackdetails angezeigt.

Beispielimage für eine Variable mit sensiblen Markierungen (Generierter SSH-Private Key) auf der Registerkarte Anwendungsinformationen:

Variable mit sensibler Markierung auf der Registerkarte "Anwendungsinformationen".

Weitere Informationen zum sensiblen Terraform-Argument finden Sie unter sensibel - Werte in der CLI-Ausgabe unterdrücken.

So markieren Sie eine Variable als sensibel:

  • Fügen Sie die Zeile sensitive: true hinzu.

Beispieldeklaration für eine Variable mit sensibler Markierung:

  ssh_private_key:
    title: Generated SSH private key
    # marks variable as sensitive
    sensitive: true
Registerkarte "Anwendungsinformationen"

So zeigen Sie die Registerkarte Anwendungsinformationen für einen Stack an, der aus Ihrer Terraform-Konfiguration erstellt wurde:

  • Fügen Sie Zeilen für das Schema title und description hinzu.
  • Fügen Sie optional eine Zeile für ein blaues Informationsfeld hinzu: informationalText.
  • Fügen Sie mindestens eine Ausgabe im Abschnitt outputs hinzu, die optional mit outputGroups gruppiert werden kann.
So lassen Sie das Kopieren eines Ausgabewerts zu, der auf der Registerkarte Anwendungsinformationen angezeigt wird:
  • Legen Sie den Typ fest: Fügen Sie die Zeile type: copyableString hinzu.

Beispielbild für die Registerkarte Anwendungsinformationen:

Registerkarte "Anwendungsinformationen".

Beispieldeklaration für einen Schematitel, eine Beschreibung und Ausgaben:

# heading under Application Information tab
title: "Deploy a WordPress instance"
# text under heading
description: "Create your own website or blog using WordPress."

...

# output variable groups
outputGroups:
- title: "Service endpoints"
  outputs:
    - wordpress_public_ip
- title: "Generated passwords"
  outputs:
    - generated_ssh_private_key

...

# output variable field names and values
outputs:
  wordpress_public_ip:
    type: link
    title: "Your WordPress website"
  generated_ssh_private_key:
    title: "Generated SSH private key"
    sensitive: true

So interagieren Sie mit Konsolenelementen

In diesem Abschnitt wird beschrieben, wie Sie mit der schemakontrollierten Anzeige von Stackinformationen in der Oracle Cloud Infrastructure-Konsole interagieren.

Stackinformationen sind von dem Schemadokument (sofern vorhanden) betroffen, das Sie in die Terraform-Konfiguration zum Erstellen des Stacks aufnehmen. Das Schemadokument wirkt sich darauf aus, wie Variablen während der Stackerstellung aussehen und sich verhalten und welcher Text in der Registerkarte Anwendungsinformationen für einen erstellten Stack angezeigt wird.

Sensible Variablen entsperren

Die Option Entsperren auf der Registerkarte Anwendungsinformationen gibt eine sensible markierte Variable an. Mit dieser Option wechseln Sie zwischen Entsperren und Sperren.

  • Um den Wert anzuzeigen, wählen Sie Entsperren.
  • Um den Wert auszublenden, wählen Sie Sperren.

Beispielimage für eine Variable mit sensiblen Markierungen (Generierter SSH-Private Key) auf der Registerkarte Anwendungsinformationen:

Screenshot der Registerkarte "Anwendungsinformationen" mit einer Variable mit sensibler Markierung (generierter SSH-Private Key).