Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.sso.kotlin
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.sso.PermissionSetArgs.builder
import com.pulumi.awsnative.sso.kotlin.inputs.PermissionSetCustomerManagedPolicyReferenceArgs
import com.pulumi.awsnative.sso.kotlin.inputs.PermissionSetCustomerManagedPolicyReferenceArgsBuilder
import com.pulumi.awsnative.sso.kotlin.inputs.PermissionSetPermissionsBoundaryArgs
import com.pulumi.awsnative.sso.kotlin.inputs.PermissionSetPermissionsBoundaryArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Resource Type definition for SSO PermissionSet
* @property customerManagedPolicyReferences Specifies the names and paths of the customer managed policies that you have attached to your permission set.
* @property description The permission set description.
* @property inlinePolicy The inline policy to put in permission set.
* Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::SSO::PermissionSet` for more information about the expected schema for this property.
* @property instanceArn The sso instance arn that the permission set is owned.
* @property managedPolicies A structure that stores the details of the AWS managed policy.
* @property name The name you want to assign to this permission set.
* @property permissionsBoundary Specifies the configuration of the AWS managed or customer managed policy that you want to set as a permissions boundary. Specify either `CustomerManagedPolicyReference` to use the name and path of a customer managed policy, or `ManagedPolicyArn` to use the ARN of an AWS managed policy. A permissions boundary represents the maximum permissions that any policy can grant your role. For more information, see [Permissions boundaries for IAM entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide* .
* > Policies used as permissions boundaries don't provide permissions. You must also attach an IAM policy to the role. To learn how the effective permissions for a role are evaluated, see [IAM JSON policy evaluation logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) in the *IAM User Guide* .
* @property relayStateType The relay state URL that redirect links to any service in the AWS Management Console.
* @property sessionDuration The length of time that a user can be signed in to an AWS account.
* @property tags The tags to attach to the new `PermissionSet` .
*/
public data class PermissionSetArgs(
public val customerManagedPolicyReferences: Output>? = null,
public val description: Output? = null,
public val inlinePolicy: Output? = null,
public val instanceArn: Output? = null,
public val managedPolicies: Output>? = null,
public val name: Output? = null,
public val permissionsBoundary: Output? = null,
public val relayStateType: Output? = null,
public val sessionDuration: Output? = null,
public val tags: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.sso.PermissionSetArgs =
com.pulumi.awsnative.sso.PermissionSetArgs.builder()
.customerManagedPolicyReferences(
customerManagedPolicyReferences?.applyValue({ args0 ->
args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
}),
)
.description(description?.applyValue({ args0 -> args0 }))
.inlinePolicy(inlinePolicy?.applyValue({ args0 -> args0 }))
.instanceArn(instanceArn?.applyValue({ args0 -> args0 }))
.managedPolicies(managedPolicies?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.name(name?.applyValue({ args0 -> args0 }))
.permissionsBoundary(
permissionsBoundary?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.relayStateType(relayStateType?.applyValue({ args0 -> args0 }))
.sessionDuration(sessionDuration?.applyValue({ args0 -> args0 }))
.tags(
tags?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
).build()
}
/**
* Builder for [PermissionSetArgs].
*/
@PulumiTagMarker
public class PermissionSetArgsBuilder internal constructor() {
private var customerManagedPolicyReferences:
Output>? = null
private var description: Output? = null
private var inlinePolicy: Output? = null
private var instanceArn: Output? = null
private var managedPolicies: Output>? = null
private var name: Output? = null
private var permissionsBoundary: Output? = null
private var relayStateType: Output? = null
private var sessionDuration: Output? = null
private var tags: Output>? = null
/**
* @param value Specifies the names and paths of the customer managed policies that you have attached to your permission set.
*/
@JvmName("vxkxofqukwliotkk")
public suspend fun customerManagedPolicyReferences(`value`: Output>) {
this.customerManagedPolicyReferences = value
}
@JvmName("frvgcdduxbnycfti")
public suspend fun customerManagedPolicyReferences(vararg values: Output) {
this.customerManagedPolicyReferences = Output.all(values.asList())
}
/**
* @param values Specifies the names and paths of the customer managed policies that you have attached to your permission set.
*/
@JvmName("mdriiphdtbrbqgcj")
public suspend fun customerManagedPolicyReferences(values: List