# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'AccessPointObjectLambdaConfigurationArgs',
    'AccessPointTransformationConfigurationArgs',
]

@pulumi.input_type
class AccessPointObjectLambdaConfigurationArgs:
    def __init__(__self__, *,
                 supporting_access_point: pulumi.Input[str],
                 transformation_configurations: pulumi.Input[Sequence[pulumi.Input['AccessPointTransformationConfigurationArgs']]],
                 allowed_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 cloud_watch_metrics_enabled: Optional[pulumi.Input[bool]] = None):
        """
        Configuration to be applied to this Object lambda Access Point. It specifies Supporting Access Point, Transformation Configurations. Customers can also set if they like to enable Cloudwatch metrics for accesses to this Object lambda Access Point. Default setting for Cloudwatch metrics is disable.
        """
        pulumi.set(__self__, "supporting_access_point", supporting_access_point)
        pulumi.set(__self__, "transformation_configurations", transformation_configurations)
        if allowed_features is not None:
            pulumi.set(__self__, "allowed_features", allowed_features)
        if cloud_watch_metrics_enabled is not None:
            pulumi.set(__self__, "cloud_watch_metrics_enabled", cloud_watch_metrics_enabled)

    @property
    @pulumi.getter(name="supportingAccessPoint")
    def supporting_access_point(self) -> pulumi.Input[str]:
        return pulumi.get(self, "supporting_access_point")

    @supporting_access_point.setter
    def supporting_access_point(self, value: pulumi.Input[str]):
        pulumi.set(self, "supporting_access_point", value)

    @property
    @pulumi.getter(name="transformationConfigurations")
    def transformation_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['AccessPointTransformationConfigurationArgs']]]:
        return pulumi.get(self, "transformation_configurations")

    @transformation_configurations.setter
    def transformation_configurations(self, value: pulumi.Input[Sequence[pulumi.Input['AccessPointTransformationConfigurationArgs']]]):
        pulumi.set(self, "transformation_configurations", value)

    @property
    @pulumi.getter(name="allowedFeatures")
    def allowed_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "allowed_features")

    @allowed_features.setter
    def allowed_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "allowed_features", value)

    @property
    @pulumi.getter(name="cloudWatchMetricsEnabled")
    def cloud_watch_metrics_enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "cloud_watch_metrics_enabled")

    @cloud_watch_metrics_enabled.setter
    def cloud_watch_metrics_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "cloud_watch_metrics_enabled", value)


@pulumi.input_type
class AccessPointTransformationConfigurationArgs:
    def __init__(__self__, *,
                 actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 content_transformation: Optional[Any] = None):
        """
        Configuration to define what content transformation will be applied on which S3 Action.
        """
        if actions is not None:
            pulumi.set(__self__, "actions", actions)
        if content_transformation is not None:
            pulumi.set(__self__, "content_transformation", content_transformation)

    @property
    @pulumi.getter
    def actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "actions")

    @actions.setter
    def actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "actions", value)

    @property
    @pulumi.getter(name="contentTransformation")
    def content_transformation(self) -> Optional[Any]:
        return pulumi.get(self, "content_transformation")

    @content_transformation.setter
    def content_transformation(self, value: Optional[Any]):
        pulumi.set(self, "content_transformation", value)


