// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateInstrumentationConfiguration`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`instrumentation_type(InstrumentationType)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::instrumentation_type) / [`set_instrumentation_type(Option<InstrumentationType>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_instrumentation_type):<br>required: **true**<br>Type of instrumentation: BREAKPOINT (temporary) or PROBE (permanent)<br>
/// - [`service(impl Into<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::service) / [`set_service(Option<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_service):<br>required: **true**<br><p>The name of the service to instrument. This should match the <code>service.name</code> resource attribute reported by the application.</p><br>
/// - [`environment(impl Into<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::environment) / [`set_environment(Option<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_environment):<br>required: **true**<br><p>The environment that the service is running in, such as <code>eks:cluster-prod/namespace</code> or <code>ec2:production</code>.</p><br>
/// - [`signal_type(DynamicInstrumentationSignalType)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::signal_type) / [`set_signal_type(Option<DynamicInstrumentationSignalType>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_signal_type):<br>required: **true**<br><p>The telemetry signal type to emit for this instrumentation. The supported value is <code>SNAPSHOT</code>.</p><br>
/// - [`location(Location)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::location) / [`set_location(Option<Location>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_location):<br>required: **true**<br><p>The location where instrumentation should be applied. Specify a <code>CodeLocation</code> for code-level instrumentation.</p><br>
/// - [`description(impl Into<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_description):<br>required: **false**<br><p>An optional short description (up to 50 characters) that explains the purpose of this instrumentation.</p><br>
/// - [`expires_at(DateTime)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::expires_at) / [`set_expires_at(Option<DateTime>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_expires_at):<br>required: **false**<br>For BREAKPOINT: optional, defaults to 24 hours, must be between 5 min and 24 hours. For PROBE: not supported. PROBE configurations are permanent and persist until explicitly deleted.<br>
/// - [`attribute_filters(HashMap::<String, String>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::attribute_filters) / [`set_attribute_filters(Option<Vec::<HashMap::<String, String>>>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_attribute_filters):<br>required: **false**<br><p>Client-side filters that target specific instances. Each object in the array is AND-matched on its keys, and multiple objects are OR-matched to decide where to apply the instrumentation.</p><br>
/// - [`capture_configuration(CaptureConfiguration)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::capture_configuration) / [`set_capture_configuration(Option<CaptureConfiguration>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_capture_configuration):<br>required: **true**<br><p>Specifies what to capture when the instrumentation point is hit. Specify <code>CodeCapture</code> for code-level capture settings.</p><br>
/// - [`tags(Tag)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::set_tags):<br>required: **false**<br><p>An optional list of key-value pairs to associate with the instrumentation configuration. Tags can help you organize and categorize your resources.</p><br>
/// - On success, responds with [`CreateInstrumentationConfigurationOutput`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput) with field(s):
/// - [`instrumentation_type(InstrumentationType)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::instrumentation_type): <p>The type of instrumentation that was created, echoed from the request.</p>
/// - [`service(String)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::service): <p>The service name for the instrumentation configuration, echoed from the request.</p>
/// - [`environment(String)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::environment): <p>The environment for the instrumentation configuration, echoed from the request.</p>
/// - [`signal_type(DynamicInstrumentationSignalType)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::signal_type): <p>The telemetry signal type for the instrumentation configuration, echoed from the request.</p>
/// - [`location(Option<Location>)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::location): <p>The location where instrumentation is applied, echoed from the request.</p>
/// - [`location_hash(String)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::location_hash): <p>A stable hash computed from the location that uniquely identifies this instrumentation point within the service, environment, and signal type.</p>
/// - [`description(Option<String>)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::description): <p>The optional description that was stored with the instrumentation configuration.</p>
/// - [`expires_at(Option<DateTime>)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::expires_at): <p>The timestamp after which this configuration is no longer served to clients. Present only for <code>BREAKPOINT</code> configurations; <code>PROBE</code> configurations do not expire.</p>
/// - [`attribute_filters(Option<Vec::<HashMap::<String, String>>>)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::attribute_filters): <p>The attribute filters returned with the configuration so SDKs can perform client-side targeting.</p>
/// - [`capture_configuration(Option<CaptureConfiguration>)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::capture_configuration): <p>The capture settings that were stored for this instrumentation configuration.</p>
/// - [`created_at(DateTime)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::created_at): <p>The server-generated creation timestamp for this instrumentation configuration.</p>
/// - [`arn(String)`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationOutput::arn): ARN for the created instrumentation configuration
/// - On failure, responds with [`SdkError<CreateInstrumentationConfigurationError>`](crate::operation::create_instrumentation_configuration::CreateInstrumentationConfigurationError)
pub fn create_instrumentation_configuration(
&self,
) -> crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder {
crate::operation::create_instrumentation_configuration::builders::CreateInstrumentationConfigurationFluentBuilder::new(self.handle.clone())
}
}