components:
  schemas:
    ExternalAccountProvider_v1_4_2_AccountProviderTypes:
      enum:
      - RedfishService
      - ActiveDirectoryService
      - LDAPService
      - OEM
      - TACACSplus
      - OAuth2
      type: string
      x-enumDescriptions:
        ActiveDirectoryService: An external Active Directory service.
        LDAPService: A generic external LDAP service.
        OAuth2: An external OAuth 2.0 service.
        OEM: An OEM-specific external authentication or directory service.
        RedfishService: An external Redfish service.
        TACACSplus: An external TACACS+ service.
      x-enumLongDescriptions:
        ActiveDirectoryService: The external account provider shall be a Microsoft
          Active Directory Technical Specification-conformant service.  The ServiceAddresses
          format shall contain a set of fully qualified domain names (FQDN) or NetBIOS
          names that links to the set of domain servers for the Active Directory service.
        LDAPService: The external account provider shall be an RFC4511-conformant
          service.  The ServiceAddresses format shall contain a set of fully qualified
          domain names (FQDN) that links to the set of LDAP servers for the service.
        OAuth2: The external account provider shall be an RFC6749-conformant service.  The
          ServiceAddresses format shall contain a set of URIs that correspond to the
          RFC8414-defined metadata for the OAuth 2.0 service.
        RedfishService: The external account provider shall be a DMTF Redfish Specification-conformant
          service.  The ServiceAddresses format shall contain a set of URIs that correspond
          to a Redfish account service.
        TACACSplus: The external account provider shall be an RFC8907-conformant service.  The
          ServiceAddresses format shall contain a set of host:port that correspond
          to a TACACS+ service and where the format for host and port are defined
          in RFC3986.
      x-enumVersionAdded:
        OAuth2: v1_3_0
        TACACSplus: v1_3_0
    ExternalAccountProvider_v1_4_2_Actions:
      additionalProperties: false
      description: The available actions for this resource.
      properties:
        Oem:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_OemActions'
          description: The available OEM-specific actions for this resource.
          x-longDescription: This property shall contain the available OEM-specific
            actions for this resource.
      type: object
      x-longDescription: This type shall contain the available actions for this resource.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_Authentication:
      additionalProperties: false
      description: The information required to authenticate to the external service.
      properties:
        AuthenticationType:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_AuthenticationTypes'
          description: The type of authentication used to connect to the external
            account provider.
          nullable: true
          readOnly: false
          x-longDescription: This property shall contain the type of authentication
            used to connect to the external account provider.
        EncryptionKey:
          description: Specifies the encryption key.
          nullable: true
          pattern: ^[0-9a-fA-F]+$
          readOnly: false
          type: string
          writeOnly: true
          x-longDescription: This property shall contain the value of a symmetric
            encryption key for account services that support some form of encryption,
            obfuscation, or authentication such as TACACS+.  The value shall be `null`
            in responses.  The property shall accept a hexadecimal string whose length
            depends on the external account service, such as TACACS+.  A TACACS+ service
            shall use this property to specify the secret key as defined in RFC8907.
          x-versionAdded: v1_2_0
        EncryptionKeySet:
          description: Indicates if the EncryptionKey property is set.
          nullable: true
          readOnly: true
          type: boolean
          x-longDescription: This property shall contain `true` if a valid value was
            provided for the EncryptionKey property.  Otherwise, the property shall
            contain `false`.  For a TACACS+ service, the value `false` shall indicate
            data obfuscation, as defined in section 4.5 of RFC8907, is disabled.
          x-versionAdded: v1_2_0
        KerberosKeytab:
          description: The Base64-encoded version of the Kerberos keytab for this
            service.  A PATCH or PUT operation writes the keytab.  This property is
            `null` in responses.
          nullable: true
          readOnly: false
          type: string
          writeOnly: true
          x-longDescription: This property shall contain a Base64-encoded version
            of the Kerberos keytab for this service.  A PATCH or PUT operation writes
            the keytab.  The value shall be `null` in responses.
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties contained in this object shall conform to the Redfish
            Specification-described requirements.
        Password:
          description: The password for this service.  A PATCH or PUT request writes
            the password.  This property is `null` in responses.
          nullable: true
          readOnly: false
          type: string
          writeOnly: true
          x-longDescription: This property shall contain the password for this service.  A
            PATCH or PUT operation writes the password.  The value shall be `null`
            in responses.
        Token:
          description: The token for this service.  A PATCH or PUT operation writes
            the token.  This property is `null` in responses.
          nullable: true
          readOnly: false
          type: string
          writeOnly: true
          x-longDescription: This property shall contain the token for this service.  A
            PATCH or PUT operation writes the token.  The value shall be `null` in
            responses.
        Username:
          description: The user name for the service.
          readOnly: false
          type: string
          x-longDescription: This property shall contain the user name for this service.
      type: object
      x-longDescription: This type shall contain the information required to authenticate
        to the external service.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_AuthenticationTypes:
      enum:
      - Token
      - KerberosKeytab
      - UsernameAndPassword
      - OEM
      type: string
      x-enumDescriptions:
        KerberosKeytab: A Kerberos keytab.
        OEM: An OEM-specific authentication mechanism.
        Token: An opaque authentication token.
        UsernameAndPassword: A user name and password combination.
    ExternalAccountProvider_v1_4_2_ExternalAccountProvider:
      additionalProperties: false
      description: The ExternalAccountProvider schema represents a remote service
        that provides accounts for this manager to use for authentication.
      properties:
        '@odata.context':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_context
        '@odata.etag':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_etag
        '@odata.id':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_id
        '@odata.type':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_type
        AccountProviderType:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_AccountProviderTypes'
          description: The type of external account provider to which this service
            connects.
          nullable: true
          readOnly: true
          x-longDescription: This property shall contain the type of external account
            provider to which this service connects.
        Actions:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_Actions'
          description: The available actions for this resource.
          x-longDescription: This property shall contain the available actions for
            this resource.
        Authentication:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_Authentication'
          description: The authentication information for the external account provider.
          x-longDescription: This property shall contain the authentication information
            for the external account provider.
        Certificates:
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_idRef
          description: The link to a collection of certificates that the external
            account provider uses.
          readOnly: true
          x-longDescription: This property shall contain a link to a resource collection
            of type CertificateCollection that contains certificates the external
            account provider uses.
          x-versionAdded: v1_1_0
        Description:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Description
          nullable: true
          readOnly: true
        Id:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Id
          readOnly: true
        LDAPService:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_LDAPService'
          description: The additional mapping information needed to parse a generic
            LDAP service.
          x-longDescription: This property shall contain any additional mapping information
            needed to parse a generic LDAP service.  This property should only be
            present if AccountProviderType is `LDAPService`.
        Links:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_Links'
          description: The links to other resources that are related to this resource.
          x-longDescription: This property shall contain links to resources that are
            related to but are not contained by, or subordinate to, this resource.
        Name:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Name
          readOnly: true
        OAuth2Service:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_OAuth2Service'
          description: The additional information needed to parse an OAuth 2.0 service.
          nullable: true
          x-longDescription: This property shall contain additional information needed
            to parse an OAuth 2.0 service.  This property should only be present inside
            an OAuth2 property.
          x-versionAdded: v1_3_0
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties that this object contains shall conform to the Redfish
            Specification-described requirements.
        Priority:
          description: The authentication priority for the external account provider.
          format: int64
          minimum: 0
          nullable: true
          readOnly: false
          type: integer
          x-longDescription: This property shall contain the assigned priority for
            the specified external account provider.  The value `0` value shall indicate
            the highest priority.  Increasing values shall represent decreasing priority.  If
            an external provider does not have a priority assignment or two or more
            external providers have the same priority, the behavior shall be determined
            by the Redfish service.  The priority is used to determine the order of
            authentication and authorization for each external account provider.
          x-versionAdded: v1_2_0
        RemoteRoleMapping:
          description: The mapping rules to convert the external account providers
            account information to the local Redfish role.
          items:
            $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_RoleMapping'
            nullable: true
          type: array
          x-longDescription: This property shall contain a set of the mapping rules
            that are used to convert the external account providers account information
            to the local Redfish role.
        ServiceAddresses:
          description: The addresses of the user account providers to which this external
            account provider links.  The format of this field depends on the type
            of external account provider.
          items:
            nullable: true
            type: string
          readOnly: false
          type: array
          x-longDescription: This property shall contain the addresses of the account
            providers to which this external account provider links.  The format of
            this field depends on the type of external account provider.  Each item
            in the array shall contain a single address.  Services can define their
            own behavior for managing multiple addresses.
        ServiceEnabled:
          description: An indication of whether this service is enabled.
          nullable: true
          readOnly: false
          type: boolean
          x-longDescription: This property shall indicate whether this service is
            enabled.
        TACACSplusService:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_TACACSplusService'
          description: The additional information needed to parse a TACACS+ services.
          nullable: true
          x-longDescription: This property shall contain additional information needed
            to parse a TACACS+ services.  This property should only be present inside
            a TACACSplus property.
          x-versionAdded: v1_2_0
      required:
      - '@odata.id'
      - '@odata.type'
      - Id
      - Name
      type: object
      x-longDescription: This resource shall represent a remote authentication service
        in the Redfish Specification.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
      x-requiredOnCreate:
      - AccountProviderType
    ExternalAccountProvider_v1_4_2_LDAPSearchSettings:
      additionalProperties: false
      description: The settings to search a generic LDAP service.
      properties:
        BaseDistinguishedNames:
          description: The base distinguished names to use to search an external LDAP
            service.
          items:
            nullable: true
            type: string
          readOnly: false
          type: array
          x-longDescription: This property shall contain an array of base distinguished
            names to use to search an external LDAP service.
        GroupNameAttribute:
          description: The attribute name that contains the LDAP group name entry.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the attribute name that contains
            the LDAP group name.
        GroupsAttribute:
          description: The attribute name that contains the groups for a user on the
            LDAP user entry.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the attribute name that contains
            the groups for an LDAP user entry.
        SSHKeyAttribute:
          description: The attribute name that contains the LDAP user's SSH public
            key entry.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the attribute name that contains
            the LDAP user's SSH public key.
          x-versionAdded: v1_4_0
        UsernameAttribute:
          description: The attribute name that contains the LDAP user name entry.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the attribute name that contains
            the LDAP user name.
      type: object
      x-longDescription: This type shall contain all required settings to search a
        generic LDAP service.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_LDAPService:
      additionalProperties: false
      description: The settings required to parse a generic LDAP service.
      properties:
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties contained in this object shall conform to the Redfish
            Specification-described requirements.
        SearchSettings:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_LDAPSearchSettings'
          description: The required settings to search an external LDAP service.
          x-longDescription: This property shall contain the required settings to
            search an external LDAP service.
      type: object
      x-longDescription: This type shall contain all required settings to parse a
        generic LDAP service.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_Links:
      additionalProperties: false
      description: The links to other resources that are related to this resource.
      properties:
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties contained in this object shall conform to the Redfish
            Specification-described requirements.
      type: object
      x-longDescription: This Redfish Specification-described type shall contain links
        to resources that are related to but are not contained by, or subordinate
        to, this resource.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_OAuth2Mode:
      enum:
      - Discovery
      - Offline
      type: string
      x-enumDescriptions:
        Discovery: OAuth 2.0 service information for token validation is downloaded
          by the service.
        Offline: OAuth 2.0 service information for token validation is configured
          by a client.  Clients should configure the Issuer and OAuthServiceSigningKeys
          properties for this mode.
      x-enumLongDescriptions:
        Discovery: This value shall indicate the service performs token validation
          from information found at the URIs specified by the ServiceAddresses property.  Services
          shall implement a caching method of this information so it's not necessary
          to retrieve metadata and key information for every request containing a
          token.
        Offline: This value shall indicate the service performs token validation from
          properties configured by a client.  Clients should configure the Issuer
          and OAuthServiceSigningKeys properties for this mode.
    ExternalAccountProvider_v1_4_2_OAuth2Service:
      additionalProperties: false
      description: Various settings to parse an OAuth 2.0 service.
      properties:
        Audience:
          description: The allowable audience strings of the Redfish service.
          items:
            type: string
          readOnly: true
          type: array
          x-longDescription: This property shall contain an array of allowable RFC7519-defined
            audience strings of the Redfish service.  The values shall uniquely identify
            the Redfish service.  For example, a MAC address or UUID for the manager
            can uniquely identify the service.
          x-versionAdded: v1_3_0
        Issuer:
          description: The issuer string of the OAuth 2.0 service.  Clients should
            configure this property if Mode contains `Offline`.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the RFC8414-defined issuer
            string of the OAuth 2.0 service.  If the Mode property contains the value
            `Discovery`, this property shall contain the value of the `issuer` string
            from the OAuth 2.0 service's metadata and this property shall be read-only.  Clients
            should configure this property if Mode contains `Offline`.
          x-versionAdded: v1_3_0
        Mode:
          $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_OAuth2Mode'
          description: The mode of operation for token validation.
          readOnly: false
          x-longDescription: This property shall contain the mode of operation for
            token validation.
          x-versionAdded: v1_3_0
        OAuthServiceSigningKeys:
          description: The Base64-encoded signing keys of the issuer of the OAuth
            2.0 service.  Clients should configure this property if Mode contains
            `Offline`.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain a Base64-encoded string of
            the RFC7517-defined signing keys of the issuer of the OAuth 2.0 service.  Services
            shall verify the token provided in the `Authorization` header of the request
            with the value of this property.  If the Mode property contains the value
            `Discovery`, this property shall contain the keys found at the URI specified
            by the `jwks_uri` string from the OAuth 2.0 service's metadata and this
            property shall be read-only.  Clients should configure this property if
            Mode contains `Offline`.
          x-versionAdded: v1_3_0
      type: object
      x-longDescription: This type shall contain settings for parsing an OAuth 2.0
        service.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_OemActions:
      additionalProperties: true
      description: The available OEM-specific actions for this resource.
      properties: {}
      type: object
      x-longDescription: This type shall contain the available OEM-specific actions
        for this resource.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_RoleMapping:
      additionalProperties: false
      description: The mapping rules that are used to convert the external account
        providers account information to the local Redfish role.
      properties:
        LocalRole:
          description: The name of the local Redfish role to which to map the remote
            user or group.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the RoleId property value
            within a role resource on this Redfish service to which to map the remote
            user or group.
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties contained in this object shall conform to the Redfish
            Specification-described requirements.
        RemoteGroup:
          description: The name of the remote group, or the remote role in the case
            of a Redfish service, that maps to the local Redfish role to which this
            entity links.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the name of the remote group,
            or the remote role in the case of a Redfish service, that maps to the
            local Redfish role to which this entity links.
        RemoteUser:
          description: The name of the remote user that maps to the local Redfish
            role to which this entity links.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the name of the remote user
            that maps to the local Redfish role to which this entity links.
      type: object
      x-longDescription: This type shall contain mapping rules that are used to convert
        the external account providers account information to the local Redfish role.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
    ExternalAccountProvider_v1_4_2_TACACSplusPasswordExchangeProtocol:
      enum:
      - ASCII
      - PAP
      - CHAP
      - MSCHAPv1
      - MSCHAPv2
      type: string
      x-enumDescriptions:
        ASCII: The ASCII Login method.
        CHAP: The CHAP Login method.
        MSCHAPv1: The MS-CHAP v1 Login method.
        MSCHAPv2: The MS-CHAP v2 Login method.
        PAP: The PAP Login method.
      x-enumLongDescriptions:
        ASCII: This value shall indicate the ASCII Login flow as described under section
          5.4.2 of RFC8907.
        CHAP: This value shall indicate the CHAP Login flow as described under section
          5.4.2 of RFC8907.
        MSCHAPv1: This value shall indicate the MS-CHAP v1 Login flow as described
          under section 5.4.2 of RFC8907.
        MSCHAPv2: This value shall indicate the MS-CHAP v2 Login flow as described
          under section 5.4.2 of RFC8907.
        PAP: This value shall indicate the PAP Login flow as described under section
          5.4.2 of RFC8907.
    ExternalAccountProvider_v1_4_2_TACACSplusService:
      additionalProperties: false
      description: Various settings to parse a TACACS+ service.
      properties:
        PasswordExchangeProtocols:
          description: Indicates the allowed TACACS+ password exchange protocols.
          items:
            $ref: '#/components/schemas/ExternalAccountProvider_v1_4_2_TACACSplusPasswordExchangeProtocol'
            nullable: true
          readOnly: false
          type: array
          x-longDescription: This property shall indicate all the allowed TACACS+
            password exchange protocol described under section 5.4.2 of RFC8907.
          x-versionAdded: v1_2_0
        PrivilegeLevelArgument:
          description: Indicates the name of the TACACS+ argument name in an authorization
            request.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall specify the name of the argument
            in a TACACS+ Authorization REPLY packet body, as defined in RFC8907, that
            contains the user's privilege level.
          x-versionAdded: v1_2_0
      type: object
      x-longDescription: This type shall contain settings for parsing a TACACS+ service.
      x-patternProperties:
        ^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\.[a-zA-Z_][a-zA-Z0-9_]*$:
          description: This property shall specify a valid odata or Redfish property.
title: '#ExternalAccountProvider.v1_4_2.ExternalAccountProvider'
x-copyright: Copyright 2014-2022 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright
x-owningEntity: DMTF
x-release: '2022.1'
