// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`StartPolicyGeneration`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`policy_engine_id(impl Into<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::policy_engine_id) / [`set_policy_engine_id(Option<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::set_policy_engine_id):<br>required: **true**<br><p>The identifier of the policy engine that provides the context for policy generation. This engine's schema and tool context are used to ensure generated policies are valid and applicable.</p><br>
/// - [`resource(Resource)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::resource) / [`set_resource(Option<Resource>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::set_resource):<br>required: **true**<br><p>The resource information that provides context for policy generation. This helps the AI understand the target resources and generate appropriate access control rules.</p><br>
/// - [`content(Content)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::content) / [`set_content(Option<Content>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::set_content):<br>required: **true**<br><p>The natural language description of the desired policy behavior. This content is processed by AI to generate corresponding Cedar policy statements that match the described intent.</p><br>
/// - [`name(impl Into<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::set_name):<br>required: **true**<br><p>A customer-assigned name for the policy generation request. This helps track and identify generation operations, especially when running multiple generations simultaneously.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::set_client_token):<br>required: **false**<br><p>A unique, case-sensitive identifier to ensure the idempotency of the request. The AWS SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without starting a duplicate generation.</p><br>
/// - On success, responds with [`StartPolicyGenerationOutput`](crate::operation::start_policy_generation::StartPolicyGenerationOutput) with field(s):
/// - [`policy_engine_id(String)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::policy_engine_id): <p>The identifier of the policy engine associated with the started policy generation.</p>
/// - [`policy_generation_id(String)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::policy_generation_id): <p>The unique identifier assigned to the policy generation request for tracking progress.</p>
/// - [`name(String)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::name): <p>The customer-assigned name for the policy generation request.</p>
/// - [`policy_generation_arn(String)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::policy_generation_arn): <p>The ARN of the created policy generation request.</p>
/// - [`resource(Option<Resource>)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::resource): <p>The resource information associated with the policy generation request.</p>
/// - [`created_at(DateTime)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::created_at): <p>The timestamp when the policy generation request was created.</p>
/// - [`updated_at(DateTime)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::updated_at): <p>The timestamp when the policy generation was last updated.</p>
/// - [`status(PolicyGenerationStatus)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::status): <p>The initial status of the policy generation request.</p>
/// - [`findings(Option<String>)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::findings): <p>Initial findings from the policy generation process.</p>
/// - [`status_reasons(Vec::<String>)`](crate::operation::start_policy_generation::StartPolicyGenerationOutput::status_reasons): <p>Additional information about the generation status.</p>
/// - On failure, responds with [`SdkError<StartPolicyGenerationError>`](crate::operation::start_policy_generation::StartPolicyGenerationError)
pub fn start_policy_generation(&self) -> crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder {
crate::operation::start_policy_generation::builders::StartPolicyGenerationFluentBuilder::new(self.handle.clone())
}
}