// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateIdentityProvider`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`user_pool_id(impl Into<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::user_pool_id) / [`set_user_pool_id(Option<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_user_pool_id):<br>required: **true**<br><p>The user pool ID.</p><br>
/// - [`provider_name(impl Into<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::provider_name) / [`set_provider_name(Option<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_provider_name):<br>required: **true**<br><p>The IdP name.</p><br>
/// - [`provider_type(IdentityProviderTypeType)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::provider_type) / [`set_provider_type(Option<IdentityProviderTypeType>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_provider_type):<br>required: **true**<br><p>The IdP type.</p><br>
/// - [`provider_details(impl Into<String>, impl Into<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::provider_details) / [`set_provider_details(Option<HashMap::<String, String>>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_provider_details):<br>required: **true**<br><p>The IdP details. The following list describes the provider detail keys for each IdP type.</p> <ul> <li> <p>For Google and Login with Amazon:</p> <ul> <li> <p>client_id</p></li> <li> <p>client_secret</p></li> <li> <p>authorize_scopes</p></li> </ul></li> <li> <p>For Facebook:</p> <ul> <li> <p>client_id</p></li> <li> <p>client_secret</p></li> <li> <p>authorize_scopes</p></li> <li> <p>api_version</p></li> </ul></li> <li> <p>For Sign in with Apple:</p> <ul> <li> <p>client_id</p></li> <li> <p>team_id</p></li> <li> <p>key_id</p></li> <li> <p>private_key</p></li> <li> <p>authorize_scopes</p></li> </ul></li> <li> <p>For OpenID Connect (OIDC) providers:</p> <ul> <li> <p>client_id</p></li> <li> <p>client_secret</p></li> <li> <p>attributes_request_method</p></li> <li> <p>oidc_issuer</p></li> <li> <p>authorize_scopes</p></li> <li> <p>The following keys are only present if Amazon Cognito didn't discover them at the <code>oidc_issuer</code> URL.</p> <ul> <li> <p>authorize_url</p></li> <li> <p>token_url</p></li> <li> <p>attributes_url</p></li> <li> <p>jwks_uri</p></li> </ul></li> <li> <p>Amazon Cognito sets the value of the following keys automatically. They are read-only.</p> <ul> <li> <p>attributes_url_add_attributes</p></li> </ul></li> </ul></li> <li> <p>For SAML providers:</p> <ul> <li> <p>MetadataFile or MetadataURL</p></li> <li> <p>IDPSignout <i>optional</i></p></li> </ul></li> </ul><br>
/// - [`attribute_mapping(impl Into<String>, impl Into<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::attribute_mapping) / [`set_attribute_mapping(Option<HashMap::<String, String>>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_attribute_mapping):<br>required: **false**<br><p>A mapping of IdP attributes to standard and custom user pool attributes.</p><br>
/// - [`idp_identifiers(impl Into<String>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::idp_identifiers) / [`set_idp_identifiers(Option<Vec::<String>>)`](crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::set_idp_identifiers):<br>required: **false**<br><p>A list of IdP identifiers.</p><br>
/// - On success, responds with [`CreateIdentityProviderOutput`](crate::operation::create_identity_provider::CreateIdentityProviderOutput) with field(s):
/// - [`identity_provider(Option<IdentityProviderType>)`](crate::operation::create_identity_provider::CreateIdentityProviderOutput::identity_provider): <p>The newly created IdP object.</p>
/// - On failure, responds with [`SdkError<CreateIdentityProviderError>`](crate::operation::create_identity_provider::CreateIdentityProviderError)
pub fn create_identity_provider(&self) -> crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder {
crate::operation::create_identity_provider::builders::CreateIdentityProviderFluentBuilder::new(self.handle.clone())
}
}