/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the iam-2010-05-08.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.IdentityManagement.Model { /// /// Container for the parameters to the CreateOpenIDConnectProvider operation. /// Creates an IAM entity to describe an identity provider (IdP) that supports OpenID /// Connect (OIDC). /// /// /// /// The OIDC provider that you create with this operation can be used as a principal in /// a role's trust policy. Such a policy establishes a trust relationship between Amazon /// Web Services and the OIDC provider. /// /// /// /// If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, /// you don't need to create a separate IAM identity provider. These OIDC identity providers /// are already built-in to Amazon Web Services and are available for your use. Instead, /// you can move directly to creating new roles using your identity provider. To learn /// more, see Creating /// a role for web identity or OpenID connect federation in the IAM User Guide. /// /// /// /// When you create the IAM OIDC provider, you specify the following: /// /// /// /// You get all of this information from the OIDC IdP you want to use to access Amazon /// Web Services. /// /// /// /// Amazon Web Services secures communication with some OIDC identity providers (IdPs) /// through our library of trusted root certificate authorities (CAs) instead of using /// a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include /// Auth0, GitHub, Google, and those that use an Amazon S3 bucket to host a JSON Web Key /// Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, /// but is no longer used for validation. /// /// /// /// The trust for the OIDC provider is derived from the IAM provider that this operation /// creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider /// operation to highly privileged users. /// /// /// public partial class CreateOpenIDConnectProviderRequest : AmazonIdentityManagementServiceRequest { private List _clientIDList = new List(); private List _tags = new List(); private List _thumbprintList = new List(); private string _url; /// /// Gets and sets the property ClientIDList. /// /// Provides a list of client IDs, also known as audiences. When a mobile or web app registers /// with an OpenID Connect provider, they establish a value that identifies the application. /// This is the value that's sent as the client_id parameter on OAuth requests. /// /// /// /// You can register multiple client IDs with the same provider. For example, you might /// have multiple applications that use the same OIDC provider. You cannot register more /// than 100 client IDs with a single IAM OIDC provider. /// /// /// /// There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest /// operation accepts client IDs up to 255 characters long. /// /// public List ClientIDList { get { return this._clientIDList; } set { this._clientIDList = value; } } // Check to see if ClientIDList property is set internal bool IsSetClientIDList() { return this._clientIDList != null && this._clientIDList.Count > 0; } /// /// Gets and sets the property Tags. /// /// A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider. /// Each tag consists of a key name and an associated value. For more information about /// tagging, see Tagging /// IAM resources in the IAM User Guide. /// /// /// /// If any one of the tags is invalid or if you exceed the allowed maximum number of tags, /// then the entire request fails and the resource is not created. /// /// /// [AWSProperty(Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property ThumbprintList. /// /// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's /// server certificates. Typically this list includes only one entry. However, IAM lets /// you have up to five thumbprints for an OIDC provider. This lets you maintain multiple /// thumbprints if the identity provider is rotating certificates. /// /// /// /// The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 /// certificate used by the domain where the OpenID Connect provider makes its keys available. /// It is always a 40-character string. /// /// /// /// You must provide at least one thumbprint when creating an IAM OIDC provider. For example, /// assume that the OIDC provider is server.example.com and the provider /// stores its keys at https://keys.server.example.com/openid-connect. In that case, the /// thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used /// by https://keys.server.example.com. /// /// /// /// For more information about obtaining the OIDC provider thumbprint, see Obtaining /// the thumbprint for an OpenID Connect provider in the IAM user Guide. /// /// [AWSProperty(Required=true)] public List ThumbprintList { get { return this._thumbprintList; } set { this._thumbprintList = value; } } // Check to see if ThumbprintList property is set internal bool IsSetThumbprintList() { return this._thumbprintList != null && this._thumbprintList.Count > 0; } /// /// Gets and sets the property Url. /// /// The URL of the identity provider. The URL must begin with https:// and /// should correspond to the iss claim in the provider's OpenID Connect ID /// tokens. Per the OIDC standard, path components are allowed but query parameters are /// not. Typically the URL consists of only a hostname, like https://server.example.org /// or https://example.com. The URL should not contain a port number. /// /// /// /// You cannot register the same provider multiple times in a single Amazon Web Services /// account. If you try to submit a URL that has already been used for an OpenID Connect /// provider in the Amazon Web Services account, you will get an error. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string Url { get { return this._url; } set { this._url = value; } } // Check to see if Url property is set internal bool IsSetUrl() { return this._url != null; } } }