diff --git a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json index 8f066d0..4ac6f14 100644 --- a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json @@ -97,9 +97,25 @@ } } }, + "stackit_authorization_folder_custom_role": { + "current": "stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, "stackit_authorization_folder_role_assignment": { "current": "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment" }, + "stackit_authorization_organization_custom_role": { + "current": "stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, "stackit_authorization_organization_role_assignment": { "current": "stackit:index/authorizationOrganizationRoleAssignment:AuthorizationOrganizationRoleAssignment" }, @@ -142,6 +158,27 @@ "blocked_countries": { "maxItemsOne": false }, + "redirects": { + "fields": { + "rules": { + "maxItemsOne": false, + "elem": { + "fields": { + "matchers": { + "maxItemsOne": false, + "elem": { + "fields": { + "values": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + }, "regions": { "maxItemsOne": false } @@ -616,6 +653,12 @@ } } }, + "stackit_secretsmanager_instance_role_binding_v1": { + "current": "stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1" + }, + "stackit_secretsmanager_secret_group_role_binding_v1": { + "current": "stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1" + }, "stackit_secretsmanager_user": { "current": "stackit:index/secretsmanagerUser:SecretsmanagerUser" }, @@ -684,6 +727,9 @@ } } }, + "stackit_sfs_project_lock": { + "current": "stackit:index/sfsProjectLock:SfsProjectLock" + }, "stackit_sfs_resource_pool": { "current": "stackit:index/sfsResourcePool:SfsResourcePool", "fields": { @@ -860,6 +906,22 @@ } } }, + "stackit_authorization_folder_custom_role": { + "current": "stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, + "stackit_authorization_organization_custom_role": { + "current": "stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, "stackit_authorization_project_custom_role": { "current": "stackit:index/getAuthorizationProjectCustomRole:getAuthorizationProjectCustomRole", "fields": { @@ -893,6 +955,27 @@ "blocked_countries": { "maxItemsOne": false }, + "redirects": { + "fields": { + "rules": { + "maxItemsOne": false, + "elem": { + "fields": { + "matchers": { + "maxItemsOne": false, + "elem": { + "fields": { + "values": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + }, "regions": { "maxItemsOne": false } @@ -1401,6 +1484,22 @@ } } }, + "stackit_secretsmanager_instance_role_bindings_v1": { + "current": "stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", + "fields": { + "role_bindings": { + "maxItemsOne": false + } + } + }, + "stackit_secretsmanager_secret_group_role_bindings_v1": { + "current": "stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", + "fields": { + "role_bindings": { + "maxItemsOne": false + } + } + }, "stackit_secretsmanager_user": { "current": "stackit:index/getSecretsmanagerUser:getSecretsmanagerUser" }, @@ -1492,6 +1591,9 @@ } } }, + "stackit_sfs_project_lock": { + "current": "stackit:index/getSfsProjectLock:getSfsProjectLock" + }, "stackit_sfs_resource_pool": { "current": "stackit:index/getSfsResourcePool:getSfsResourcePool", "fields": { diff --git a/provider/cmd/pulumi-resource-stackit/schema.json b/provider/cmd/pulumi-resource-stackit/schema.json index b7c097a..e3da59e 100644 --- a/provider/cmd/pulumi-resource-stackit/schema.json +++ b/provider/cmd/pulumi-resource-stackit/schema.json @@ -803,6 +803,10 @@ "$ref": "#/types/stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer", "description": "Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience.\n" }, + "redirects": { + "$ref": "#/types/stackit:index/CdnDistributionConfigRedirects:CdnDistributionConfigRedirects", + "description": "A wrapper for a list of redirect rules that allows for redirect settings on a distribution\n" + }, "regions": { "type": "array", "items": { @@ -906,6 +910,97 @@ } } }, + "stackit:index/CdnDistributionConfigRedirects:CdnDistributionConfigRedirects": { + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/CdnDistributionConfigRedirectsRule:CdnDistributionConfigRedirectsRule" + }, + "description": "A list of redirect rules. The order of rules matters for evaluation\n" + } + }, + "type": "object", + "required": [ + "rules" + ] + }, + "stackit:index/CdnDistributionConfigRedirectsRule:CdnDistributionConfigRedirectsRule": { + "properties": { + "description": { + "type": "string", + "description": "An optional description for the redirect rule\n" + }, + "enabled": { + "type": "boolean", + "description": "A toggle to enable or disable the redirect rule. Default to true\n" + }, + "matchers": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/CdnDistributionConfigRedirectsRuleMatcher:CdnDistributionConfigRedirectsRuleMatcher" + }, + "description": "A list of matchers that define when this rule should apply. At least one matcher is required\n" + }, + "ruleMatchCondition": { + "type": "string", + "description": "Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.\n" + }, + "statusCode": { + "type": "integer", + "description": "The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308.\n" + }, + "targetUrl": { + "type": "string", + "description": "The target URL to redirect to. Must be a valid URI\n" + } + }, + "type": "object", + "required": [ + "matchers", + "statusCode", + "targetUrl" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "description", + "enabled", + "matchers", + "ruleMatchCondition", + "statusCode", + "targetUrl" + ] + } + } + }, + "stackit:index/CdnDistributionConfigRedirectsRuleMatcher:CdnDistributionConfigRedirectsRuleMatcher": { + "properties": { + "valueMatchCondition": { + "type": "string", + "description": "Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.\n" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of glob patterns to match against the request path. At least one value is required. Examples: \"/shop/*\" or \"*/img/*\"\n" + } + }, + "type": "object", + "required": [ + "values" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "valueMatchCondition", + "values" + ] + } + } + }, "stackit:index/CdnDistributionDomain:CdnDistributionDomain": { "properties": { "errors": { @@ -1302,6 +1397,7 @@ "requiredOutputs": [ "activeHealthCheck", "name", + "sessionPersistence", "targetPort", "targets" ] @@ -1351,7 +1447,14 @@ "description": "If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev.\n" } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "useSourceIpAddress" + ] + } + } }, "stackit:index/LoadbalancerTargetPoolTarget:LoadbalancerTargetPoolTarget": { "properties": { @@ -2974,10 +3077,6 @@ } }, "type": "object", - "required": [ - "end", - "start" - ], "language": { "nodejs": { "requiredOutputs": [ @@ -3948,6 +4047,10 @@ "$ref": "#/types/stackit:index/getCdnDistributionConfigOptimizer:getCdnDistributionConfigOptimizer", "description": "Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience.\n" }, + "redirects": { + "$ref": "#/types/stackit:index/getCdnDistributionConfigRedirects:getCdnDistributionConfigRedirects", + "description": "A wrapper for a list of redirect rules that allows for redirect settings on a distribution\n" + }, "regions": { "type": "array", "items": { @@ -3960,6 +4063,7 @@ "required": [ "backend", "optimizer", + "redirects", "regions" ], "language": { @@ -4035,6 +4139,96 @@ } } }, + "stackit:index/getCdnDistributionConfigRedirects:getCdnDistributionConfigRedirects": { + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/getCdnDistributionConfigRedirectsRule:getCdnDistributionConfigRedirectsRule" + }, + "description": "A list of redirect rules. The order of rules matters for evaluation\n" + } + }, + "type": "object", + "required": [ + "rules" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "stackit:index/getCdnDistributionConfigRedirectsRule:getCdnDistributionConfigRedirectsRule": { + "properties": { + "description": { + "type": "string", + "description": "An optional description for the redirect rule\n" + }, + "enabled": { + "type": "boolean", + "description": "A toggle to enable or disable the redirect rule. Default to true\n" + }, + "matchers": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/getCdnDistributionConfigRedirectsRuleMatcher:getCdnDistributionConfigRedirectsRuleMatcher" + }, + "description": "A list of matchers that define when this rule should apply. At least one matcher is required\n" + }, + "ruleMatchCondition": { + "type": "string", + "description": "Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.\n" + }, + "statusCode": { + "type": "integer", + "description": "The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308.\n" + }, + "targetUrl": { + "type": "string", + "description": "The target URL to redirect to. Must be a valid URI\n" + } + }, + "type": "object", + "required": [ + "description", + "enabled", + "matchers", + "ruleMatchCondition", + "statusCode", + "targetUrl" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "stackit:index/getCdnDistributionConfigRedirectsRuleMatcher:getCdnDistributionConfigRedirectsRuleMatcher": { + "properties": { + "valueMatchCondition": { + "type": "string", + "description": "Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.\n" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of glob patterns to match against the request path. At least one value is required. Examples: \"/shop/*\" or \"*/img/*\"\n" + } + }, + "type": "object", + "required": [ + "valueMatchCondition", + "values" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "stackit:index/getCdnDistributionDomain:getCdnDistributionDomain": { "properties": { "errors": { @@ -4639,6 +4833,7 @@ "required": [ "activeHealthCheck", "name", + "sessionPersistence", "targetPort", "targets" ], @@ -4692,7 +4887,15 @@ "description": "If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev.\n" } }, - "type": "object" + "type": "object", + "required": [ + "useSourceIpAddress" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, "stackit:index/getLoadbalancerTargetPoolTarget:getLoadbalancerTargetPoolTarget": { "properties": { @@ -6244,6 +6447,50 @@ } } }, + "stackit:index/getSecretsmanagerInstanceRoleBindingsV1RoleBinding:getSecretsmanagerInstanceRoleBindingsV1RoleBinding": { + "properties": { + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "type": "object", + "required": [ + "role", + "subject" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1RoleBinding:getSecretsmanagerSecretGroupRoleBindingsV1RoleBinding": { + "properties": { + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "type": "object", + "required": [ + "role", + "subject" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "stackit:index/getSecurityGroupRuleIcmpParameters:getSecurityGroupRuleIcmpParameters": { "properties": { "code": { @@ -7960,60 +8207,240 @@ "type": "object" } }, + "stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole": { + "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\nresource \"stackit_resourcemanager_folder\" \"example\" {\n name = \"example_folder\"\n owner_email = \"foo.bar@stackit.cloud\"\n parent_container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\nresource \"stackit_authorization_folder_custom_role\" \"example\" {\n resource_id = stackit_resourcemanager_folder.example.folder_id\n name = \"my.custom.role\"\n description = \"Some description\"\n permissions = [\n \"iam.subject.get\"\n ]\n}\n\n# Only use the import statement, if you want to import an existing custom role\nimport {\n to = stackit_authorization_folder_custom_role.import-example\n id = \"${var.folder_id},${var.custom_role_id}\"\n}\n```\n", + "properties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "required": [ + "description", + "name", + "permissions", + "resourceId", + "roleId" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + } + }, + "requiredInputs": [ + "description", + "permissions", + "resourceId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AuthorizationFolderCustomRole resources.\n", + "properties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "type": "object" + } + }, "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": { "description": "Folder Role Assignment resource schema.\n\n\u003e This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\n\n## Example Usage\n\n```terraform\nresource \"stackit_resourcemanager_folder\" \"example\" {\n name = \"example_folder\"\n owner_email = \"foo.bar@stackit.cloud\"\n # in this case a org-id\n parent_container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\nresource \"stackit_authorization_folder_role_assignment\" \"fra\" {\n resource_id = stackit_resourcemanager_folder.example.folder_id\n role = \"reader\"\n subject = \"foo.bar@stackit.cloud\"\n}\n\n# Only use the import statement, if you want to import an existing folder role assignment\nimport {\n to = stackit_authorization_folder_role_assignment.import-example\n id = \"${var.folder_id},${var.folder_role_assignment},${var.folder_role_assignment_subject}\"\n}\n```\n", "properties": { "resourceId": { "type": "string", - "description": "Folder Resource to assign the role to.\n" + "description": "Folder Resource to assign the role to.\n" + }, + "role": { + "type": "string", + "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + } + }, + "required": [ + "resourceId", + "role", + "subject" + ], + "inputProperties": { + "resourceId": { + "type": "string", + "description": "Folder Resource to assign the role to.\n" + }, + "role": { + "type": "string", + "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + } + }, + "requiredInputs": [ + "resourceId", + "role", + "subject" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AuthorizationFolderRoleAssignment resources.\n", + "properties": { + "resourceId": { + "type": "string", + "description": "Folder Resource to assign the role to.\n" + }, + "role": { + "type": "string", + "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + } + }, + "type": "object" + } + }, + "stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole": { + "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\nresource \"stackit_authorization_organization_custom_role\" \"example\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n description = \"Some description\"\n permissions = [\n \"iam.subject.get\"\n ]\n}\n\n# Only use the import statement, if you want to import an existing custom role\nimport {\n to = stackit_authorization_organization_custom_role.import-example\n id = \"${var.organization_id},${var.custom_role_id}\"\n}\n```\n", + "properties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" }, - "role": { + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { "type": "string", - "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + "description": "Resource to add the custom role to.\n" }, - "subject": { + "roleId": { "type": "string", - "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + "description": "The ID of the role.\n" } }, "required": [ + "description", + "name", + "permissions", "resourceId", - "role", - "subject" + "roleId" ], "inputProperties": { - "resourceId": { + "description": { "type": "string", - "description": "Folder Resource to assign the role to.\n" + "description": "A human readable description of the role.\n" }, - "role": { + "name": { "type": "string", - "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + "description": "Name of the role\n" }, - "subject": { + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { "type": "string", - "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + "description": "Resource to add the custom role to.\n" } }, "requiredInputs": [ - "resourceId", - "role", - "subject" + "description", + "permissions", + "resourceId" ], "stateInputs": { - "description": "Input properties used for looking up and filtering AuthorizationFolderRoleAssignment resources.\n", + "description": "Input properties used for looking up and filtering AuthorizationOrganizationCustomRole resources.\n", "properties": { - "resourceId": { + "description": { "type": "string", - "description": "Folder Resource to assign the role to.\n" + "description": "A human readable description of the role.\n" }, - "role": { + "name": { "type": "string", - "description": "Role to be assigned. Available roles can be queried using stackit-cli: `stackit curl https://authorization.api.stackit.cloud/v2/permissions`\n" + "description": "Name of the role\n" }, - "subject": { + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { "type": "string", - "description": "Identifier of user, service account or client. Usually email address or name in case of clients. All letters must be lowercased.\n" + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" } }, "type": "object" @@ -8378,7 +8805,7 @@ } }, "stackit:index/cdnDistribution:CdnDistribution": { - "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n geofencing = {\n \"https://mybackend.onstackit.cloud\" = [\"DE\"]\n }\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\nresource \"stackit_cdn_distribution\" \"example_bucket_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"bucket\"\n bucket_url = \"https://my-test.object.storage.eu01.onstackit.cloud\"\n region = \"eu01\"\n\n # Credentials are required for bucket backends\n # It is strongly recommended to use variables for secrets\n credentials = {\n access_key_id = var.bucket_access_key\n secret_access_key = var.bucket_secret_key\n }\n }\n regions = [\"EU\", \"US\"]\n blocked_countries = [\"CN\", \"RU\"]\n\n optimizer = {\n enabled = false\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", + "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n geofencing = {\n \"https://mybackend.onstackit.cloud\" = [\"DE\"]\n }\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\nresource \"stackit_cdn_distribution\" \"example_bucket_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"bucket\"\n bucket_url = \"https://my-test.object.storage.eu01.onstackit.cloud\"\n region = \"eu01\"\n\n # Credentials are required for bucket backends\n # It is strongly recommended to use variables for secrets\n credentials = {\n access_key_id = var.bucket_access_key\n secret_access_key = var.bucket_secret_key\n }\n }\n regions = [\"EU\", \"US\"]\n blocked_countries = [\"CN\", \"RU\"]\n\n optimizer = {\n enabled = false\n }\n\n redirects = {\n rules = [\n {\n description = \"test redirect\"\n enabled = true\n rule_match_condition = \"ANY\"\n status_code = 302\n target_url = \"https://stackit.de/\"\n matchers = [\n {\n values = [\"*/otherPath/\"]\n value_match_condition = \"ANY\"\n }\n ]\n }\n ]\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", "properties": { "config": { "$ref": "#/types/stackit:index/CdnDistributionConfig:CdnDistributionConfig", @@ -12860,7 +13287,7 @@ "type": "string", "description": "The resource region. If not defined, the provider region is used.\n" }, - "urn": { + "stackitUrn": { "type": "string", "description": "Credentials group uniform resource name (URN)\n" } @@ -12870,7 +13297,7 @@ "name", "projectId", "region", - "urn" + "stackitUrn" ], "inputProperties": { "name": { @@ -12908,7 +13335,7 @@ "type": "string", "description": "The resource region. If not defined, the provider region is used.\n" }, - "urn": { + "stackitUrn": { "type": "string", "description": "Credentials group uniform resource name (URN)\n" } @@ -15915,6 +16342,150 @@ "type": "object" } }, + "stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1": { + "description": "IAM role binding resource schema.\n\n\u003e This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\n\n## Example Usage\n\n```terraform\nresource \"stackit_secretsmanager_instance_role_binding_v1\" \"role_binding\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n role = \"owner\"\n subject = \"john.doe@example.com\"\n}\n```\n\n## Import\n\n```terraform\n# Only use the import statement if you want to import an existing role binding\nimport {\n to = stackit_secretsmanager_instance_role_binding_v1.import_example\n id = \"${var.region},${var.resource_id},${var.role},${var.subject}\"\n}\n```\n\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "required": [ + "region", + "resourceId", + "role", + "subject" + ], + "inputProperties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "requiredInputs": [ + "resourceId", + "role", + "subject" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering SecretsmanagerInstanceRoleBindingV1 resources.\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "type": "object" + } + }, + "stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1": { + "description": "IAM role binding resource schema.\n\n\u003e This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\n\n## Example Usage\n\n```terraform\nresource \"stackit_secretsmanager_secret_group_role_binding_v1\" \"role_binding\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n role = \"owner\"\n subject = \"john.doe@example.com\"\n}\n```\n\n## Import\n\n```terraform\n# Only use the import statement if you want to import an existing role binding\nimport {\n to = stackit_secretsmanager_secret_group_role_binding_v1.import_example\n id = \"${var.region},${var.resource_id},${var.role},${var.subject}\"\n}\n```\n\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "required": [ + "region", + "resourceId", + "role", + "subject" + ], + "inputProperties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "requiredInputs": [ + "resourceId", + "role", + "subject" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering SecretsmanagerSecretGroupRoleBindingV1 resources.\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to apply this role binding to.\n" + }, + "role": { + "type": "string", + "description": "A valid role defined for the resource.\n" + }, + "subject": { + "type": "string", + "description": "Identifier of user, service account or client. Usually email address or name in case of clients.\n" + } + }, + "type": "object" + } + }, "stackit:index/secretsmanagerUser:SecretsmanagerUser": { "description": "Secrets Manager user resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_secretsmanager_user\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n description = \"Example user\"\n write_enabled = false\n}\n\n# Only use the import statement, if you want to import an existing secretsmanager user\nimport {\n to = stackit_secretsmanager_user.import-example\n id = \"${var.project_id},${var.secret_instance_id},${var.secret_user_id}\"\n}\n```\n", "properties": { @@ -16300,7 +16871,7 @@ } }, "stackit:index/server:Server": { - "description": "Server resource schema. Must have a region specified in the provider configuration.\n\n## Example Usage\n\n### With key pair\n```terraform\nresource \"stackit_key_pair\" \"keypair\" {\n name = \"example-key-pair\"\n public_key = chomp(file(\"path/to/id_rsa.pub\"))\n}\n\nresource \"stackit_server\" \"user-data-from-file\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = file(\"${path.module}/cloud-init.yaml\")\n}\n\n```\n\n### Boot from volume\n```terraform\nresource \"stackit_server\" \"boot-from-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = \"example-keypair\"\n}\n\n```\n\n### Boot from existing volume\n```terraform\nresource \"stackit_volume\" \"example-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 12\n source = {\n type = \"image\"\n id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-volume\"\n availability_zone = \"eu01-1\"\n}\n\nresource \"stackit_server\" \"boot-from-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n source_type = \"volume\"\n source_id = stackit_volume.example-volume.volume_id\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n}\n\n```\n\n### Network setup\n```terraform\nresource \"stackit_network\" \"network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-network\"\n nameservers = [\"192.0.2.0\", \"198.51.100.0\", \"203.0.113.0\"]\n ipv4_prefix_length = 24\n}\n\nresource \"stackit_security_group\" \"sec-group\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-security-group\"\n stateful = true\n}\n\nresource \"stackit_security_group_rule\" \"rule\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n security_group_id = stackit_security_group.sec-group.security_group_id\n direction = \"ingress\"\n ether_type = \"IPv4\"\n}\n\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.network.network_id\n security_group_ids = [stackit_security_group.sec-group.security_group_id]\n}\n\nresource \"stackit_server\" \"server-with-network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\t\n}\n\nresource \"stackit_public_ip\" \"public-ip\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_interface_id = stackit_network_interface.nic.network_interface_id\n}\n\n```\n\n### Server with attached volume\n```terraform\nresource \"stackit_volume\" \"example-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 12\n performance_class = \"storage_premium_perf6\"\n name = \"example-volume\"\n availability_zone = \"eu01-1\"\n}\n\nresource \"stackit_server\" \"server-with-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n}\n\nresource \"stackit_server_volume_attach\" \"attach_volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = stackit_server.server-with-volume.server_id\n volume_id = stackit_volume.example-volume.volume_id\n}\n\n```\n\n### Server with user data (cloud-init)\n```terraform\nresource \"stackit_server\" \"user-data\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = \"#!/bin/bash\\n/bin/su\"\n}\n\nresource \"stackit_server\" \"user-data-from-file\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = file(\"${path.module}/cloud-init.yaml\")\n}\n\n```\n\n\n### Additional Examples\n\n```terraform\nresource \"stackit_server\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"59838a89-51b1-4892-b57f-b3caf598ee2f\" // Ubuntu 24.04\n }\n availability_zone = \"xxxx-x\"\n machine_type = \"g2i.1\"\n network_interfaces = [\n stackit_network_interface.example.network_interface_id\n ]\n}\n\n# Only use the import statement, if you want to import an existing server\n# Note: There will be a conflict which needs to be resolved manually.\n# Must set a configuration value for the boot_volume.source_type and boot_volume.source_id attribute as the provider has marked it as required.\n# Since those attributes are not fetched in general from the API call, after adding them this would replace your server resource after an pulumi up.\n# In order to prevent this you need to add:\n# lifecycle {\n# ignore_changes = [ boot_volume ]\n# }\nimport {\n to = stackit_server.import-example\n id = \"${var.project_id},${var.region},${var.server_id}\"\n}\n```\n", + "description": "Server resource schema. Must have a region specified in the provider configuration.\n\n## Example Usage\n\n### With key pair\n```terraform\nresource \"stackit_key_pair\" \"keypair\" {\n name = \"example-key-pair\"\n public_key = chomp(file(\"path/to/id_rsa.pub\"))\n}\n\nresource \"stackit_server\" \"user-data-from-file\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = file(\"${path.module}/cloud-init.yaml\")\n}\n\n```\n\n### Boot from volume\n```terraform\nresource \"stackit_server\" \"boot-from-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = \"example-keypair\"\n}\n\n```\n\n### Boot from existing volume\n```terraform\nresource \"stackit_volume\" \"example-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 12\n source = {\n type = \"image\"\n id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-volume\"\n availability_zone = \"eu01-1\"\n}\n\nresource \"stackit_server\" \"boot-from-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n source_type = \"volume\"\n source_id = stackit_volume.example-volume.volume_id\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n}\n\n```\n\n### Network setup\n```terraform\nresource \"stackit_network\" \"network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-network\"\n ipv4_nameservers = [\"192.0.2.0\", \"198.51.100.0\", \"203.0.113.0\"]\n ipv4_prefix_length = 24\n}\n\nresource \"stackit_security_group\" \"sec-group\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-security-group\"\n stateful = true\n}\n\nresource \"stackit_security_group_rule\" \"rule\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n security_group_id = stackit_security_group.sec-group.security_group_id\n direction = \"ingress\"\n ether_type = \"IPv4\"\n}\n\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.network.network_id\n security_group_ids = [stackit_security_group.sec-group.security_group_id]\n}\n\nresource \"stackit_server\" \"server-with-network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n}\n\nresource \"stackit_public_ip\" \"public-ip\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_interface_id = stackit_network_interface.nic.network_interface_id\n}\n\n```\n\n### Server with attached volume\n```terraform\nresource \"stackit_volume\" \"example-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 12\n performance_class = \"storage_premium_perf6\"\n name = \"example-volume\"\n availability_zone = \"eu01-1\"\n}\n\nresource \"stackit_server\" \"server-with-volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n availability_zone = \"eu01-1\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n}\n\nresource \"stackit_server_volume_attach\" \"attach_volume\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = stackit_server.server-with-volume.server_id\n volume_id = stackit_volume.example-volume.volume_id\n}\n\n```\n\n### Server with user data (cloud-init)\n```terraform\nresource \"stackit_server\" \"user-data\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = \"#!/bin/bash\\n/bin/su\"\n}\n\nresource \"stackit_server\" \"user-data-from-file\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n }\n name = \"example-server\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n user_data = file(\"${path.module}/cloud-init.yaml\")\n}\n\n```\n\n\n### Additional Examples\n\n```terraform\nresource \"stackit_server\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"59838a89-51b1-4892-b57f-b3caf598ee2f\" // Ubuntu 24.04\n }\n availability_zone = \"xxxx-x\"\n machine_type = \"g2i.1\"\n network_interfaces = [\n stackit_network_interface.example.network_interface_id\n ]\n}\n\n# Only use the import statement, if you want to import an existing server\n# Note: There will be a conflict which needs to be resolved manually.\n# Must set a configuration value for the boot_volume.source_type and boot_volume.source_id attribute as the provider has marked it as required.\n# Since those attributes are not fetched in general from the API call, after adding them this would replace your server resource after an pulumi up.\n# In order to prevent this you need to add:\n# lifecycle {\n# ignore_changes = [ boot_volume ]\n# }\nimport {\n to = stackit_server.import-example\n id = \"${var.project_id},${var.region},${var.server_id}\"\n}\n```\n", "properties": { "affinityGroup": { "type": "string", @@ -17363,46 +17934,99 @@ }, "projectId": { "type": "string", - "description": "STACKIT project ID to which the export policy is associated.\n" + "description": "STACKIT project ID to which the export policy is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "rules": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/SfsExportPolicyRule:SfsExportPolicyRule" + } + } + }, + "requiredInputs": [ + "projectId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering SfsExportPolicy resources.\n", + "properties": { + "name": { + "type": "string", + "description": "Name of the export policy.\n" + }, + "policyId": { + "type": "string", + "description": "Export policy ID\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the export policy is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "rules": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/SfsExportPolicyRule:SfsExportPolicyRule" + } + } + }, + "type": "object" + } + }, + "stackit:index/sfsProjectLock:SfsProjectLock": { + "description": "SFS project lock resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration. Always use only one project lock per project.\n\n## Example Usage\n\n```terraform\nresource \"stackit_sfs_project_lock\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\n# Only use the import statement, if you want to import an existing project lock\nimport {\n to = stackit_sfs_project_lock.example\n id = \"${var.project_id},${var.region}\"\n}\n```\n", + "properties": { + "lockId": { + "type": "string", + "description": "ID of the lock.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT Project ID to which the project lock is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "required": [ + "lockId", + "projectId", + "region" + ], + "inputProperties": { + "projectId": { + "type": "string", + "description": "STACKIT Project ID to which the project lock is associated.\n" }, "region": { "type": "string", "description": "The resource region. If not defined, the provider region is used.\n" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/types/stackit:index/SfsExportPolicyRule:SfsExportPolicyRule" - } } }, "requiredInputs": [ "projectId" ], "stateInputs": { - "description": "Input properties used for looking up and filtering SfsExportPolicy resources.\n", + "description": "Input properties used for looking up and filtering SfsProjectLock resources.\n", "properties": { - "name": { - "type": "string", - "description": "Name of the export policy.\n" - }, - "policyId": { + "lockId": { "type": "string", - "description": "Export policy ID\n" + "description": "ID of the lock.\n" }, "projectId": { "type": "string", - "description": "STACKIT project ID to which the export policy is associated.\n" + "description": "STACKIT Project ID to which the project lock is associated.\n" }, "region": { "type": "string", "description": "The resource region. If not defined, the provider region is used.\n" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/types/stackit:index/SfsExportPolicyRule:SfsExportPolicyRule" - } } }, "type": "object" @@ -17589,7 +18213,6 @@ } }, "required": [ - "exportPolicy", "mountPath", "name", "projectId", @@ -17625,7 +18248,6 @@ } }, "requiredInputs": [ - "exportPolicy", "projectId", "resourcePoolId", "spaceHardLimitGigabytes" @@ -17715,7 +18337,7 @@ "items": { "$ref": "#/types/stackit:index/SkeClusterNodePool:SkeClusterNodePool" }, - "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\n" + "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\nTo keep your Terraform plans clean and readable, always append new node pools to the end of the list.\n" }, "podAddressRanges": { "type": "array", @@ -17777,7 +18399,7 @@ "items": { "$ref": "#/types/stackit:index/SkeClusterNodePool:SkeClusterNodePool" }, - "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\n" + "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\nTo keep your Terraform plans clean and readable, always append new node pools to the end of the list.\n" }, "projectId": { "type": "string", @@ -17838,7 +18460,7 @@ "items": { "$ref": "#/types/stackit:index/SkeClusterNodePool:SkeClusterNodePool" }, - "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\n" + "description": "One or more \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e block as defined below.\nTo keep your Terraform plans clean and readable, always append new node pools to the end of the list.\n" }, "podAddressRanges": { "type": "array", @@ -18737,8 +19359,132 @@ ] } }, + "stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole": { + "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_authorization_folder_custom_role\" \"example\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getAuthorizationFolderCustomRole.\n", + "properties": { + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "type": "object", + "required": [ + "resourceId", + "roleId" + ] + }, + "outputs": { + "description": "A collection of values returned by getAuthorizationFolderCustomRole.\n", + "properties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "id": { + "type": "string", + "description": "Terraform's internal resource identifier. It is structured as \"[resource*id],[role*id]\".\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "type": "object", + "required": [ + "description", + "id", + "name", + "permissions", + "resourceId", + "roleId" + ] + } + }, + "stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole": { + "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_authorization_organization_custom_role\" \"example\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getAuthorizationOrganizationCustomRole.\n", + "properties": { + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "type": "object", + "required": [ + "resourceId", + "roleId" + ] + }, + "outputs": { + "description": "A collection of values returned by getAuthorizationOrganizationCustomRole.\n", + "properties": { + "description": { + "type": "string", + "description": "A human readable description of the role.\n" + }, + "id": { + "type": "string", + "description": "Terraform's internal resource identifier. It is structured as \"[resource*id],[role*id]\".\n" + }, + "name": { + "type": "string", + "description": "Name of the role\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Permissions for the role\n" + }, + "resourceId": { + "type": "string", + "description": "Resource to add the custom role to.\n" + }, + "roleId": { + "type": "string", + "description": "The ID of the role.\n" + } + }, + "type": "object", + "required": [ + "description", + "id", + "name", + "permissions", + "resourceId", + "roleId" + ] + } + }, "stackit:index/getAuthorizationProjectCustomRole:getAuthorizationProjectCustomRole": { - "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_authorization_project_custom_role\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n}\n```\n", + "description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_authorization_project_custom_role\" \"example\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n}\n```\n", "inputs": { "description": "A collection of arguments for invoking getAuthorizationProjectCustomRole.\n", "properties": { @@ -23737,6 +24483,106 @@ ] } }, + "stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1": { + "description": "IAM role binding datasource schema.\n\n\u003e This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\n\n## Example Usage\n\n```terraform\ndata \"stackit_secretsmanager_instance_role_bindings_v1\" \"role_binding\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getSecretsmanagerInstanceRoleBindingsV1.\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to get the role bindings for.\n" + } + }, + "type": "object", + "required": [ + "resourceId" + ] + }, + "outputs": { + "description": "A collection of values returned by getSecretsmanagerInstanceRoleBindingsV1.\n", + "properties": { + "id": { + "type": "string", + "description": "Terraform's internal resource identifier. It is structured as \"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`resourceId`\" pulumi-lang-dotnet=\"`ResourceId`\" pulumi-lang-go=\"`resourceId`\" pulumi-lang-python=\"`resource_id`\" pulumi-lang-yaml=\"`resourceId`\" pulumi-lang-java=\"`resourceId`\"\u003e`resourceId`\u003c/span\u003e\".\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to get the role bindings for.\n" + }, + "roleBindings": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/getSecretsmanagerInstanceRoleBindingsV1RoleBinding:getSecretsmanagerInstanceRoleBindingsV1RoleBinding" + }, + "description": "List of role bindings.\n" + } + }, + "type": "object", + "required": [ + "id", + "resourceId", + "roleBindings" + ] + } + }, + "stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1": { + "description": "IAM role binding datasource schema.\n\n\u003e This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\n\n## Example Usage\n\n```terraform\ndata \"stackit_secretsmanager_secret_group_role_bindings_v1\" \"role_binding\" {\n resource_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getSecretsmanagerSecretGroupRoleBindingsV1.\n", + "properties": { + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to get the role bindings for.\n" + } + }, + "type": "object", + "required": [ + "resourceId" + ] + }, + "outputs": { + "description": "A collection of values returned by getSecretsmanagerSecretGroupRoleBindingsV1.\n", + "properties": { + "id": { + "type": "string", + "description": "Terraform's internal resource identifier. It is structured as \"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`resourceId`\" pulumi-lang-dotnet=\"`ResourceId`\" pulumi-lang-go=\"`resourceId`\" pulumi-lang-python=\"`resource_id`\" pulumi-lang-yaml=\"`resourceId`\" pulumi-lang-java=\"`resourceId`\"\u003e`resourceId`\u003c/span\u003e\".\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "resourceId": { + "type": "string", + "description": "The identifier of the resource to get the role bindings for.\n" + }, + "roleBindings": { + "type": "array", + "items": { + "$ref": "#/types/stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1RoleBinding:getSecretsmanagerSecretGroupRoleBindingsV1RoleBinding" + }, + "description": "List of role bindings.\n" + } + }, + "type": "object", + "required": [ + "id", + "resourceId", + "roleBindings" + ] + } + }, "stackit:index/getSecretsmanagerUser:getSecretsmanagerUser": { "description": "Secrets Manager user data source schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_secretsmanager_user\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n user_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", "inputs": { @@ -24687,6 +25533,54 @@ ] } }, + "stackit:index/getSfsProjectLock:getSfsProjectLock": { + "description": "SFS project lock resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration. Always use only one project lock per project.\n\n## Example Usage\n\n```terraform\ndata \"stackit_sfs_project_lock\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getSfsProjectLock.\n", + "properties": { + "projectId": { + "type": "string", + "description": "STACKIT Project ID to which the project lock is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getSfsProjectLock.\n", + "properties": { + "id": { + "type": "string", + "description": "Terraform's internal resource identifier. It is structured as \"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`projectId`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e\".\n" + }, + "lockId": { + "type": "string", + "description": "ID of the lock.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT Project ID to which the project lock is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "id", + "lockId", + "projectId", + "region" + ] + } + }, "stackit:index/getSfsResourcePool:getSfsResourcePool": { "description": "Resource-pool datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_sfs_resource_pool\" \"resourcepool\" {\n project_id = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"\n resource_pool_id = \"YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY\"\n}\n```\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index c8bd4fa..63a265d 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -123,7 +123,7 @@ require ( github.com/hashicorp/terraform-plugin-go v0.31.0 // indirect github.com/hashicorp/terraform-plugin-log v0.10.0 // indirect github.com/hashicorp/terraform-plugin-sdk v1.8.0 // indirect - github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 // indirect + github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/yamux v0.1.2 // indirect @@ -195,39 +195,39 @@ require ( github.com/spf13/cobra v1.10.2 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.24.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 // indirect - github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 // indirect - github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1 // indirect - github.com/stackitcloud/terraform-provider-stackit v0.91.0 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.26.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1 // indirect + github.com/stackitcloud/terraform-provider-stackit v0.94.0 // indirect github.com/teambition/rrule-go v1.8.2 // indirect github.com/teekennedy/goldmark-markdown v0.3.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect @@ -260,7 +260,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.49.0 // indirect golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect - golang.org/x/mod v0.34.0 // indirect + golang.org/x/mod v0.35.0 // indirect golang.org/x/net v0.52.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sync v0.20.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index fd75e04..4dd02bc 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -395,8 +395,8 @@ github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY github.com/hashicorp/terraform-plugin-sdk v1.8.0 h1:HE1p52nzcgz88hIJmapUnkmM9noEjV3QhTOLaua5XUA= github.com/hashicorp/terraform-plugin-sdk v1.8.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-plugin-testing v1.14.0 h1:5t4VKrjOJ0rg0sVuSJ86dz5K7PHsMO6OKrHFzDBerWA= -github.com/hashicorp/terraform-plugin-testing v1.14.0/go.mod h1:1qfWkecyYe1Do2EEOK/5/WnTyvC8wQucUkkhiGLg5nk= +github.com/hashicorp/terraform-plugin-testing v1.15.0 h1:/fimKyl0YgD7aAtJkuuAZjwBASXhCIwWqMbDLnKLMe4= +github.com/hashicorp/terraform-plugin-testing v1.15.0/go.mod h1:bGXMw7bE95EiZhSBV3rM2W8TiffaPTDuLS+HFI/lIYs= github.com/hashicorp/terraform-registry-address v0.4.0 h1:S1yCGomj30Sao4l5BMPjTGZmCNzuv7/GDTDX99E9gTk= github.com/hashicorp/terraform-registry-address v0.4.0/go.mod h1:LRS1Ay0+mAiRkUyltGT+UHWkIqTFvigGn/LbMshfflE= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= @@ -642,72 +642,72 @@ github.com/stackitcloud/pulumi-stackit/provider/pkg/version v0.0.5 h1:rlaEEWYQmT github.com/stackitcloud/pulumi-stackit/provider/pkg/version v0.0.5/go.mod h1:EZ5yZatO0uo7jmkG0p1U15gucMoaKJwvP73lmhTdBFc= github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.5 h1:ctFtNsPgsd+TjmeAM/cjvqMXwRaaT83b6VzRwvdEZf8= github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.5/go.mod h1:WRtX5YpJExVNq7XEFo5sXTYUfjxWolOVDT3ybrNoanI= -github.com/stackitcloud/stackit-sdk-go/core v0.24.1 h1:IrG0XBlJivUpXC4Y6TE+6FeSxNPs1JQXsero0ivwh0o= -github.com/stackitcloud/stackit-sdk-go/core v0.24.1/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI= -github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1 h1:RKaxAymxlyxxE0Gta3yRuQWf07LnlcX+mfGnVB96NHA= -github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1/go.mod h1:FHkV5L9vCQha+5MX+NdMdYjQIHXcLr95+bu1FN91QOM= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0 h1:iRJK2d3I2QqWp8hqhxlkCtQDNb7fwKHkik9ogmcx2o8= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0/go.mod h1:URWWMIbvq4YgWdGYCbccr3eat4Y+0qRpufZsEAsvoLM= -github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1 h1:RBY/mNR4H8Vd/7z0nky+AQNvoaZ16hvrGSuYi1YLLao= -github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1/go.mod h1:3R/RwYdBc1s6WZNhToWs0rBDropbNRM7okOAdjY3rpU= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1 h1:VfszhFq/Snsd0LnflS8PbM0d9cG98hOFpamfjlcTnDQ= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1/go.mod h1:gBv6YkB3Xf3c0ZXg2GwtWY8zExwGPF/Ag114XiiERxg= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0 h1:lsOTEvItzrUerCzUodyyOy6pZ4QiSzwID7U20ZvZvHw= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0/go.mod h1:CfqSEGCW0b5JlijCwtUT1kfjThmQ5jXX47TWrdD5rTU= -github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0 h1:siKBCYl7BwR5S25Y4SwUAX6eFTXSCkQ+8JIQEqyKIXo= -github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0/go.mod h1:QKy74hhLVZKXItw3y+elF8s9QezFqpEsAUmaqvNDzYs= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 h1:W57+XRa8wTLsi5CV9Tqa7mGgt/PvlRM//RurXSmvII8= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5/go.mod h1:lTWjW57eAq1bwfM6nsNinhoBr3MHFW/GaFasdAsYfDM= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0 h1:WWU2LpqmazsPDgoRAVrhLzo2MiNU9dNim81z793DbBU= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0/go.mod h1:FuyCm3s/Ihw+tkpVLGMXwgTtlhrijd31cUCUBWpn1p8= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1 h1:8hLLCP4n9w3K3dqJaKF1PnMpX4qjR8UQL3gDr80hgDI= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1/go.mod h1:vqTjmecQ4+oVWzeo9tCOUZ3TrpIIzM+C0apC7cdAD0Y= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1 h1:6AaWxQNtOEvIvbtyySi5KIrNzxGbKgOayUnA3fpuqns= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1/go.mod h1:qwpGNPgF7LmfodGPXcgv9uldeSSuFMNJkyD6QPqfiCI= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1 h1:cuQA5dO8WSM0LBHR2FBpf+RgKH7/DE7+5NUPLxDpgPg= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1/go.mod h1:di3QDHwOlpa99dXRuGLcuyDCi0A+zlMtgzYi2okQMr8= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1 h1:YK2HxO+Nffe5BTt8jtWUyyES3sarjIH1GWlrqRaa4Ec= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1/go.mod h1:/8x9gLPt1ZqcAtyVP3dwqKA9FtdHMn5pcy1TSS5iSSg= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1 h1:qBPfWK6Xpi7eYFAZCOR4H2wkJqZMRadfAbBdJ4Qrktk= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1/go.mod h1:b8L6f68HZce01y+eZ1o7KTRAkgpWhggpvakAEwnxnCs= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2 h1:ymhDgp6+RXBvmi9nugaVCi3MN0q2pC62SD+Nh5nTB84= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2/go.mod h1:gm7KzHv788MZ2BPimrlRk3ueV8EBN4JACg/MtotGC70= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0 h1:UxnbsKm6PQV8Gudw/EhySaEh9q1xSaTG8mzJz1EvhnE= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0/go.mod h1:RFL4h6JZvpsyFYbdJ3+eINEkletzJQTfrPdd+yPT/fU= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0 h1:LGwCvvST0fwUgZ6bOxYIfu45qqTgv421ZS07UhKjZL8= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0/go.mod h1:9KdrXC5JS30Ay3mR0adb3vNdhca+qxiy/cPF5P4wehQ= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1 h1:AO5Np67/w0AUdhb6yk+CTXMzMkGdQPudmI8ryWp94fQ= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1/go.mod h1:Reo2Nk3yiA686quUMrk0eKwzpzaAZ7KwmzHzScNdG8Q= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 h1:H67e3KnHQx954yI8fuQmxXwRf/myqAdLg2KvxImp00g= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5/go.mod h1:xmAWk9eom8wznvLuLfm0F4xyeiBX8LaggXsKFmos+dw= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0 h1:I8NF8Q5nRj7/7qDI8Qm4oI0KCNQcOjE6kqyBdWcUoxk= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0/go.mod h1:wk2Oz+7pxT9YF1h6elWzdlhU6V7GSQXcGixxlXxNe+U= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3 h1:wZIGETPQ1aiJwzJMVjatdu/Kv+/yuKVOf5RaMWW9bpU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3/go.mod h1:jgWx29zvZP0R3tXAC/qWU5eBsPfLBJFP96mx9hwdFPM= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0 h1:bT/qoghsdKvLomCay9Wj4Fu63lx0cD2zr23Fjqzgotc= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0/go.mod h1:jiPIzF8lcm5Dx0TkDK2CBgeRBHSRUqwyX+z/zqo1bes= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1 h1:ayfCRRVTVwFGQMfjmXaDhiLyif53ibTu7zNhUTnNh2w= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1/go.mod h1:26fU2pMiIxUZ+Az5ux3vMtaVVzhK6md+lvW0s+ONVU0= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 h1:3hZSg3z+4AXa5LbR2Vl38VmSA83ABItE63E53LuyWv8= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3/go.mod h1:5unx5r0IgeFCtJDEgsWddtgKvYSw442FDNdhtfyJnQI= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 h1:LLyANBzE8sQa0/49tQBqq4sVLhNgwdqCeQm76srJHWw= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8/go.mod h1:/bmg57XZu+bGczzcoumrukiGMPGzI2mOyTT4BVIQUBs= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 h1:sQ3fdtUjgIL2Ul8nRYVVacHOwi5aSMTGGbYVL30oQBU= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6/go.mod h1:3fjlL+9YtuI9Oocl1ZeYIK48ImtY4DwPggFhqAygr7o= -github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0 h1:l1EDIlXce2C8JcbBDHVa6nZ4SjPTqmnALTgrhms+NKI= -github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0/go.mod h1:EXq8/J7t9p8zPmdIq+atuxyAbnQwxrQT18fI+Qpv98k= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1 h1:HZnZju8yqpvRIs71PEk54Jov6p+jiKIIlN+J+4tvcL0= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1/go.mod h1:wBxlGcNeQPIh1aS4xYqJuN2z6haSHRwzne6drN5ROfM= -github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3 h1:LEdPJ6f9pbrft+HlIIzRcCQog58b7UKVm4ObiOH8H4o= -github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3/go.mod h1:qO2+XOzLy9rRTDo3IvXJd4uZsl6d1npa2cyQvaY4/Fw= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 h1:l1QjxW7sdE/6B6BZtHxbmus8XJdI9KDuXX3fwUa5fog= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1 h1:aUpKF2aF8WKsHawXPFnKsRlAcaHkRg6UL0sVjuQqB74= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1/go.mod h1:1rYtgXQWSv0ykMZ6p7vXcmccGcwR37omNh9FMKLNwck= -github.com/stackitcloud/terraform-provider-stackit v0.91.0 h1:/km4XO0H1/kudFF9W93/9CeN/tKOnnu3vMy5uANNn6U= -github.com/stackitcloud/terraform-provider-stackit v0.91.0/go.mod h1:IO7GljXoPviiwb9X+JGQUxkkqGSu9E4hjdGrLhpsVfI= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0 h1:jQEb9gkehfp6VCP6TcYk7BI10cz4l0KM2L6hqYBH2QA= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0/go.mod h1:WU1hhxnjXw2EV7CYa1nlEvNpMiRY6CvmIOaHuL3pOaA= +github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1 h1:hlos/aew02XKWtq1ss9EQh1UCzV1SXArYioew+WIv2M= +github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1/go.mod h1:yYC61OsTtLZsrcq8l/JCI6MjvxLT4E2wMQj6LXc7prA= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1 h1:TtpVXxgCJ17AqSOIzooQru/H3QnC4Z2VIF7HbaeKeJs= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1/go.mod h1:c9JimEdshtcIHAI2j2N388ybW+InO1fvYPvL6rxb2uY= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0 h1:yn9PGMZ9kqiPwTspaB0/Ko5/NR3FtvBYaQiT36oRfDQ= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0/go.mod h1:KgZkrMEC4e46GRnnAZNpXNfEFPt43dn4yCu7EtPK3rE= +github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1 h1:ZzC6Ds40ooXZRgyAAeKCI508X+/rs7rbn0cTt7k9sKk= +github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1/go.mod h1:b4h5WDcL6FKzbonAmmQkHCAcFhXDr9GQuxEzVlNe9Vo= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2 h1:nMJRg1dKioOlMwXJnZZgIRwfTWYCksVA9GyfAVmib1g= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2/go.mod h1:FiYSv3D9rzgEVzi8Mpq5oYZBosrasa5uUYqVdEIbM1U= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1 h1:6jFXUq9psx6gEAkowSpNxrdQ4gq6sXD6/wkzhBQZDZo= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1/go.mod h1:JzYuE14U8aSLDJaqMdJVjdiwzPqhbeAqJXVqcXEuE0I= +github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2 h1:SOqbdC5hvjJRMUWEbYyWe61xPIgUtVp9dnkzkavVmzw= +github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2/go.mod h1:YZEL+gaK+ELn5E9VtK8yvz5RcmCBH+JkRpf6YbNVSbM= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2 h1:UXW2OtgflJPN+58W7tX27CbJdpXg03RxM39DwXSrW5s= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2/go.mod h1:OgVH92wVTVQwkUSvrgFaSkmbLM1XEA2UYGP+oLEaLMA= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2 h1:IzEWlJ/JtAHRRdCikxABkX55s63QGC0wp3tFtwq+oCI= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2/go.mod h1:pVaCmb1ZHAPGVRlSlBlVOjThp9Tb2sX9+nRX0M+d1KU= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1 h1:aKIKKPdYEAw09ivHlXBVJdqXJax1eWPEe0oXkd8J/Zk= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1/go.mod h1:glY8R+mlF4JlUd00z7dxyv/LTgdgqrJ11TVx7yCfJyw= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2 h1:vpm7au3Asqn3F5NwqKZjoYq4p8lSGuxIbajvFvIZ1YU= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2/go.mod h1:JDOOYaGgcBts2x52nKPRMFgSZe7qqOFmfz1xIXCQgRY= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2 h1:Y1YrwN0zqBPBth/69FPnkWiWgZycg4PUdjUs8cAZ7i4= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2/go.mod h1:tvRejL8w5KpGBbLFPQ+dXOJURgZ3OMbZmwxlKQrGMuA= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2 h1:V1NyFrmtUlikjS5Zl1ml14++G7lvlEBTfF+v48cchwg= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2/go.mod h1:joa89Y1dyn0j22FstRcIKfW2ada3FDxNfttxSvq27uY= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2 h1:JKQj6wvlUuXhGd4/qw2nsNcXbkmtgAYzniqTg7q4Gvw= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2/go.mod h1:u7T85YqoqncJevbPU1ODKthbmxxEh1zw+bVaAO8v0Sg= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3 h1:QW//diMedJX1o4HQV+NSWT3we7Xlly+ReWcaQqwwG90= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3/go.mod h1:0hHEPiOEMAA23EzEl42Rm3FlyKIzkW+LWLvDkuFTZ+Q= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2 h1:H0ImuBpUZRpRf08Pafx9sU74wiTIdjFpiW4BiOYJx10= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2/go.mod h1:QsPtoqAYvumyPU6ToX/5j1PbudN+VSTuvh6mp154ecM= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2 h1:iHcHPaRFpVaXXio0uuVkPtbnEHwClKioFdn9W72ZmYU= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2/go.mod h1:0fEZQHm729mBdvg4sNrAhM6KmHROHJSeS2FwCMRk46k= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2 h1:2BH61+gyc2Jq4stX3L731JIb6VKK8JJcx4c1h+esPPo= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2/go.mod h1:L+NlfC1hilLOqlLLukCj/UDnxlnNrc/oMikcw3Ansyw= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2 h1:VIekoX8eCvSgO9HEr4j+z5SKApN2DgfXudSt02zU6Is= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2/go.mod h1:yzlakB+f8ur4yAHR6lyCABO+HcEtZG3G2Faj6m5/uW8= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2 h1:p+B3NbuH27Dmi5iM88b/YHXd0fcI3Bc81AsRTOjIK6U= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2/go.mod h1:TwfVVynB/+AKbccSOLk2qZpPL1tdK43BBAiACP6EtSg= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2 h1:9s8yUxXEORj/ChLLf5vGdjmMC3PhDlYRIVd4v23Uavg= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2/go.mod h1:yjej6QfYoYdRIyKXlmbVz8fZYxbuUdl+QBkvLDPgA4k= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1 h1:J7EqPLrdfEWhEw5bH3StHbKtrSwJ6Gdjw5RwzsHXGf0= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1/go.mod h1:hczoIYoLKu7vL+iunL1AlhQ2MqQXckPlqiozrqdZrWQ= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1 h1:bXorYZgdx9W6GLunvU+VPaOITp4BNRuyOuwbPVpTlVo= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1/go.mod h1:Q2BlJ3Y/JEndson0E/GFQN5v3b0vQak71csYFyuOzUs= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1 h1:U5rstX5e6Am2t+Ukv5K1Sbftzxt5aFALMa9YS4jCJoo= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1/go.mod h1:2XA8PE05Qg6BL2YXO4XgfGI9qskJ3cicLE5Qq0aqDdY= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2 h1:NCGehrXvtpFaeH85fU1DWisf3+IgqoGUERY70UfwTUU= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2/go.mod h1:BJeafbecuocdirGCAJ2Vz/rPSK/LRrB5lPBEacqd1eU= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2 h1:6C/iTPoYPCrZOc3JMmvyDNs4hm+JR5p9O3DIfFGgnbo= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2/go.mod h1:/OHYZXQb9KXDdZK5J9C2YS6DJUD2i6ednZ1rK7zpDZ0= +github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1 h1:T/5murYRgKIuieEY4PvLM0WipaSD2MsyR1VuQoKt+MQ= +github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1/go.mod h1:D8P9ZhWfXRE8gNQKUae9pyZGpskS949ezR7QQIGAMp8= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1 h1:Q/0UVLpcYJ+Sye5FWnASMyxmkXw7mPk5i5QFc+me5UU= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1/go.mod h1:DaAUnOHgpL2tX0dejQzW/1b/sFxFhbnIx4PhjY+YuyA= +github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0 h1:JWAFnskRbNKT8x62pZcAMCC+p5hyTEkAyxqFwy39jFA= +github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0/go.mod h1:jMlBoXqrPNX5nXbo6oT7exalqilw1jiLPoIp4Cn0CdI= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0 h1:CSzqycERxxLsB/x6CJUPqTyqrwiQ6WG23XPlal3Szh0= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0/go.mod h1:Pvzgr+UTnWXlRVhiq2eigcLFIBwfgyviy8m4DLMgI0E= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1 h1:wPqWAZX70u2VWIU0PCNhayff8OmGTpI4dZ7VkROwqco= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1/go.mod h1:AiUoMAqQcOlMgDtkVJlqI7P/VGD5xjN3dYjERGnwN/M= +github.com/stackitcloud/terraform-provider-stackit v0.94.0 h1:zE+gTOkzz+3ozjJxMRznKk5x7NegDGJe4SC/6vqz/BU= +github.com/stackitcloud/terraform-provider-stackit v0.94.0/go.mod h1:7m8lkTFUP6PbVgCvjXT+2kr742jbJiq5DEcfT0/+w98= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -849,8 +849,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/provider/shim/go.mod b/provider/shim/go.mod index dac9925..fc1e253 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -2,19 +2,18 @@ module github.com/stackitcloud/pulumi-stackit/provider/shim go 1.26.0 -require github.com/stackitcloud/terraform-provider-stackit v0.91.0 +require github.com/stackitcloud/terraform-provider-stackit v0.94.0 require ( github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/terraform-exec v0.25.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.7.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect google.golang.org/grpc v1.80.0 // indirect ) @@ -33,34 +32,34 @@ require ( github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.24.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 // indirect - github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 // indirect - github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.26.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1 // indirect github.com/teambition/rrule-go v1.8.2 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - golang.org/x/mod v0.34.0 // indirect + golang.org/x/mod v0.35.0 // indirect golang.org/x/sys v0.42.0 // indirect ) diff --git a/provider/shim/go.sum b/provider/shim/go.sum index f437e95..6c93e49 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -42,18 +42,21 @@ github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGb github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-exec v0.25.0 h1:Bkt6m3VkJqYh+laFMrWIpy9KHYFITpOyzRMNI35rNaY= +github.com/hashicorp/terraform-exec v0.25.0/go.mod h1:dl9IwsCfklDU6I4wq9/StFDp7dNbH/h5AnfS1RmiUl8= github.com/hashicorp/terraform-json v0.27.2 h1:BwGuzM6iUPqf9JYM/Z4AF1OJ5VVJEEzoKST/tRDBJKU= github.com/hashicorp/terraform-plugin-framework v1.19.0 h1:q0bwyhxAOR3vfdgbk9iplv3MlTv/dhBHTXjQOtQDoBA= +github.com/hashicorp/terraform-plugin-framework v1.19.0/go.mod h1:YRXOBu0jvs7xp4AThBbX4mAzYaMJ1JgtFH//oGKxwLc= github.com/hashicorp/terraform-plugin-framework-timeouts v0.7.0 h1:jblRy1PkLfPm5hb5XeMa3tezusnMRziUGqtT5epSYoI= github.com/hashicorp/terraform-plugin-framework-timeouts v0.7.0/go.mod h1:5jm2XK8uqrdiSRfD5O47OoxyGMCnwTcl8eoiDgSa+tc= github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 h1:Zz3iGgzxe/1XBkooZCewS0nJAaCFPFPHdNJd8FgE4Ow= github.com/hashicorp/terraform-plugin-framework-validators v0.19.0/go.mod h1:GBKTNGbGVJohU03dZ7U8wHqc2zYnMUawgCN+gC0itLc= github.com/hashicorp/terraform-plugin-go v0.31.0 h1:0Fz2r9DQ+kNNl6bx8HRxFd1TfMKUvnrOtvJPmp3Z0q8= +github.com/hashicorp/terraform-plugin-go v0.31.0/go.mod h1:A88bDhd/cW7FnwqxQRz3slT+QY6yzbHKc6AOTtmdeS8= github.com/hashicorp/terraform-plugin-log v0.10.0 h1:eu2kW6/QBVdN4P3Ju2WiB2W3ObjkAsyfBsL3Wh1fj3g= github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY1NRHP4E3ekrXRGjqORpXyB0= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 h1:mlAq/OrMlg04IuJT7NpefI1wwtdpWudnEmjuQs04t/4= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1/go.mod h1:GQhpKVvvuwzD79e8/NZ+xzj+ZpWovdPAe8nfV/skwNU= -github.com/hashicorp/terraform-plugin-testing v1.14.0 h1:5t4VKrjOJ0rg0sVuSJ86dz5K7PHsMO6OKrHFzDBerWA= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.0 h1:MKS/2URqeJRwJdbOfcbdsZCq/IRrNkqJNN0GtVIsuGs= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.0/go.mod h1:PuG4P97Ju3QXW6c6vRkRadWJbvnEu2Xh+oOuqcYOqX4= +github.com/hashicorp/terraform-plugin-testing v1.15.0 h1:/fimKyl0YgD7aAtJkuuAZjwBASXhCIwWqMbDLnKLMe4= github.com/hashicorp/terraform-registry-address v0.4.0 h1:S1yCGomj30Sao4l5BMPjTGZmCNzuv7/GDTDX99E9gTk= github.com/hashicorp/terraform-registry-address v0.4.0/go.mod h1:LRS1Ay0+mAiRkUyltGT+UHWkIqTFvigGn/LbMshfflE= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= @@ -82,72 +85,72 @@ github.com/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/stackitcloud/stackit-sdk-go/core v0.24.1 h1:IrG0XBlJivUpXC4Y6TE+6FeSxNPs1JQXsero0ivwh0o= -github.com/stackitcloud/stackit-sdk-go/core v0.24.1/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI= -github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1 h1:RKaxAymxlyxxE0Gta3yRuQWf07LnlcX+mfGnVB96NHA= -github.com/stackitcloud/stackit-sdk-go/services/alb v0.12.1/go.mod h1:FHkV5L9vCQha+5MX+NdMdYjQIHXcLr95+bu1FN91QOM= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0 h1:iRJK2d3I2QqWp8hqhxlkCtQDNb7fwKHkik9ogmcx2o8= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.13.0/go.mod h1:URWWMIbvq4YgWdGYCbccr3eat4Y+0qRpufZsEAsvoLM= -github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1 h1:RBY/mNR4H8Vd/7z0nky+AQNvoaZ16hvrGSuYi1YLLao= -github.com/stackitcloud/stackit-sdk-go/services/certificates v1.4.1/go.mod h1:3R/RwYdBc1s6WZNhToWs0rBDropbNRM7okOAdjY3rpU= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1 h1:VfszhFq/Snsd0LnflS8PbM0d9cG98hOFpamfjlcTnDQ= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.1/go.mod h1:gBv6YkB3Xf3c0ZXg2GwtWY8zExwGPF/Ag114XiiERxg= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0 h1:lsOTEvItzrUerCzUodyyOy6pZ4QiSzwID7U20ZvZvHw= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.8.0/go.mod h1:CfqSEGCW0b5JlijCwtUT1kfjThmQ5jXX47TWrdD5rTU= -github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0 h1:siKBCYl7BwR5S25Y4SwUAX6eFTXSCkQ+8JIQEqyKIXo= -github.com/stackitcloud/stackit-sdk-go/services/git v0.11.0/go.mod h1:QKy74hhLVZKXItw3y+elF8s9QezFqpEsAUmaqvNDzYs= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 h1:W57+XRa8wTLsi5CV9Tqa7mGgt/PvlRM//RurXSmvII8= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5/go.mod h1:lTWjW57eAq1bwfM6nsNinhoBr3MHFW/GaFasdAsYfDM= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0 h1:WWU2LpqmazsPDgoRAVrhLzo2MiNU9dNim81z793DbBU= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.6.0/go.mod h1:FuyCm3s/Ihw+tkpVLGMXwgTtlhrijd31cUCUBWpn1p8= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1 h1:8hLLCP4n9w3K3dqJaKF1PnMpX4qjR8UQL3gDr80hgDI= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.11.1/go.mod h1:vqTjmecQ4+oVWzeo9tCOUZ3TrpIIzM+C0apC7cdAD0Y= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1 h1:6AaWxQNtOEvIvbtyySi5KIrNzxGbKgOayUnA3fpuqns= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.27.1/go.mod h1:qwpGNPgF7LmfodGPXcgv9uldeSSuFMNJkyD6QPqfiCI= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1 h1:cuQA5dO8WSM0LBHR2FBpf+RgKH7/DE7+5NUPLxDpgPg= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.7.1/go.mod h1:di3QDHwOlpa99dXRuGLcuyDCi0A+zlMtgzYi2okQMr8= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1 h1:YK2HxO+Nffe5BTt8jtWUyyES3sarjIH1GWlrqRaa4Ec= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.27.1/go.mod h1:/8x9gLPt1ZqcAtyVP3dwqKA9FtdHMn5pcy1TSS5iSSg= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1 h1:qBPfWK6Xpi7eYFAZCOR4H2wkJqZMRadfAbBdJ4Qrktk= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.8.1/go.mod h1:b8L6f68HZce01y+eZ1o7KTRAkgpWhggpvakAEwnxnCs= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2 h1:ymhDgp6+RXBvmi9nugaVCi3MN0q2pC62SD+Nh5nTB84= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.7.2/go.mod h1:gm7KzHv788MZ2BPimrlRk3ueV8EBN4JACg/MtotGC70= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0 h1:UxnbsKm6PQV8Gudw/EhySaEh9q1xSaTG8mzJz1EvhnE= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.7.0/go.mod h1:RFL4h6JZvpsyFYbdJ3+eINEkletzJQTfrPdd+yPT/fU= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0 h1:LGwCvvST0fwUgZ6bOxYIfu45qqTgv421ZS07UhKjZL8= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0/go.mod h1:9KdrXC5JS30Ay3mR0adb3vNdhca+qxiy/cPF5P4wehQ= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1 h1:AO5Np67/w0AUdhb6yk+CTXMzMkGdQPudmI8ryWp94fQ= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1/go.mod h1:Reo2Nk3yiA686quUMrk0eKwzpzaAZ7KwmzHzScNdG8Q= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 h1:H67e3KnHQx954yI8fuQmxXwRf/myqAdLg2KvxImp00g= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5/go.mod h1:xmAWk9eom8wznvLuLfm0F4xyeiBX8LaggXsKFmos+dw= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0 h1:I8NF8Q5nRj7/7qDI8Qm4oI0KCNQcOjE6kqyBdWcUoxk= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0/go.mod h1:wk2Oz+7pxT9YF1h6elWzdlhU6V7GSQXcGixxlXxNe+U= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3 h1:wZIGETPQ1aiJwzJMVjatdu/Kv+/yuKVOf5RaMWW9bpU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3/go.mod h1:jgWx29zvZP0R3tXAC/qWU5eBsPfLBJFP96mx9hwdFPM= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0 h1:bT/qoghsdKvLomCay9Wj4Fu63lx0cD2zr23Fjqzgotc= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0/go.mod h1:jiPIzF8lcm5Dx0TkDK2CBgeRBHSRUqwyX+z/zqo1bes= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1 h1:ayfCRRVTVwFGQMfjmXaDhiLyif53ibTu7zNhUTnNh2w= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1/go.mod h1:26fU2pMiIxUZ+Az5ux3vMtaVVzhK6md+lvW0s+ONVU0= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 h1:3hZSg3z+4AXa5LbR2Vl38VmSA83ABItE63E53LuyWv8= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3/go.mod h1:5unx5r0IgeFCtJDEgsWddtgKvYSw442FDNdhtfyJnQI= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 h1:LLyANBzE8sQa0/49tQBqq4sVLhNgwdqCeQm76srJHWw= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8/go.mod h1:/bmg57XZu+bGczzcoumrukiGMPGzI2mOyTT4BVIQUBs= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 h1:sQ3fdtUjgIL2Ul8nRYVVacHOwi5aSMTGGbYVL30oQBU= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6/go.mod h1:3fjlL+9YtuI9Oocl1ZeYIK48ImtY4DwPggFhqAygr7o= -github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0 h1:l1EDIlXce2C8JcbBDHVa6nZ4SjPTqmnALTgrhms+NKI= -github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0/go.mod h1:EXq8/J7t9p8zPmdIq+atuxyAbnQwxrQT18fI+Qpv98k= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1 h1:HZnZju8yqpvRIs71PEk54Jov6p+jiKIIlN+J+4tvcL0= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.4.1/go.mod h1:wBxlGcNeQPIh1aS4xYqJuN2z6haSHRwzne6drN5ROfM= -github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3 h1:LEdPJ6f9pbrft+HlIIzRcCQog58b7UKVm4ObiOH8H4o= -github.com/stackitcloud/stackit-sdk-go/services/sfs v0.6.3/go.mod h1:qO2+XOzLy9rRTDo3IvXJd4uZsl6d1npa2cyQvaY4/Fw= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 h1:l1QjxW7sdE/6B6BZtHxbmus8XJdI9KDuXX3fwUa5fog= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1 h1:aUpKF2aF8WKsHawXPFnKsRlAcaHkRg6UL0sVjuQqB74= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.6.1/go.mod h1:1rYtgXQWSv0ykMZ6p7vXcmccGcwR37omNh9FMKLNwck= -github.com/stackitcloud/terraform-provider-stackit v0.91.0 h1:/km4XO0H1/kudFF9W93/9CeN/tKOnnu3vMy5uANNn6U= -github.com/stackitcloud/terraform-provider-stackit v0.91.0/go.mod h1:IO7GljXoPviiwb9X+JGQUxkkqGSu9E4hjdGrLhpsVfI= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0 h1:jQEb9gkehfp6VCP6TcYk7BI10cz4l0KM2L6hqYBH2QA= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0/go.mod h1:WU1hhxnjXw2EV7CYa1nlEvNpMiRY6CvmIOaHuL3pOaA= +github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1 h1:hlos/aew02XKWtq1ss9EQh1UCzV1SXArYioew+WIv2M= +github.com/stackitcloud/stackit-sdk-go/services/alb v0.14.1/go.mod h1:yYC61OsTtLZsrcq8l/JCI6MjvxLT4E2wMQj6LXc7prA= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1 h1:TtpVXxgCJ17AqSOIzooQru/H3QnC4Z2VIF7HbaeKeJs= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.15.1/go.mod h1:c9JimEdshtcIHAI2j2N388ybW+InO1fvYPvL6rxb2uY= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0 h1:yn9PGMZ9kqiPwTspaB0/Ko5/NR3FtvBYaQiT36oRfDQ= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.15.0/go.mod h1:KgZkrMEC4e46GRnnAZNpXNfEFPt43dn4yCu7EtPK3rE= +github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1 h1:ZzC6Ds40ooXZRgyAAeKCI508X+/rs7rbn0cTt7k9sKk= +github.com/stackitcloud/stackit-sdk-go/services/certificates v1.6.1/go.mod h1:b4h5WDcL6FKzbonAmmQkHCAcFhXDr9GQuxEzVlNe9Vo= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2 h1:nMJRg1dKioOlMwXJnZZgIRwfTWYCksVA9GyfAVmib1g= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.20.2/go.mod h1:FiYSv3D9rzgEVzi8Mpq5oYZBosrasa5uUYqVdEIbM1U= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1 h1:6jFXUq9psx6gEAkowSpNxrdQ4gq6sXD6/wkzhBQZDZo= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.9.1/go.mod h1:JzYuE14U8aSLDJaqMdJVjdiwzPqhbeAqJXVqcXEuE0I= +github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2 h1:SOqbdC5hvjJRMUWEbYyWe61xPIgUtVp9dnkzkavVmzw= +github.com/stackitcloud/stackit-sdk-go/services/git v0.12.2/go.mod h1:YZEL+gaK+ELn5E9VtK8yvz5RcmCBH+JkRpf6YbNVSbM= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2 h1:UXW2OtgflJPN+58W7tX27CbJdpXg03RxM39DwXSrW5s= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.10.2/go.mod h1:OgVH92wVTVQwkUSvrgFaSkmbLM1XEA2UYGP+oLEaLMA= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2 h1:IzEWlJ/JtAHRRdCikxABkX55s63QGC0wp3tFtwq+oCI= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.7.2/go.mod h1:pVaCmb1ZHAPGVRlSlBlVOjThp9Tb2sX9+nRX0M+d1KU= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1 h1:aKIKKPdYEAw09ivHlXBVJdqXJax1eWPEe0oXkd8J/Zk= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.12.1/go.mod h1:glY8R+mlF4JlUd00z7dxyv/LTgdgqrJ11TVx7yCfJyw= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2 h1:vpm7au3Asqn3F5NwqKZjoYq4p8lSGuxIbajvFvIZ1YU= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.28.2/go.mod h1:JDOOYaGgcBts2x52nKPRMFgSZe7qqOFmfz1xIXCQgRY= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2 h1:Y1YrwN0zqBPBth/69FPnkWiWgZycg4PUdjUs8cAZ7i4= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.8.2/go.mod h1:tvRejL8w5KpGBbLFPQ+dXOJURgZ3OMbZmwxlKQrGMuA= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2 h1:V1NyFrmtUlikjS5Zl1ml14++G7lvlEBTfF+v48cchwg= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.28.2/go.mod h1:joa89Y1dyn0j22FstRcIKfW2ada3FDxNfttxSvq27uY= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2 h1:JKQj6wvlUuXhGd4/qw2nsNcXbkmtgAYzniqTg7q4Gvw= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.9.2/go.mod h1:u7T85YqoqncJevbPU1ODKthbmxxEh1zw+bVaAO8v0Sg= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3 h1:QW//diMedJX1o4HQV+NSWT3we7Xlly+ReWcaQqwwG90= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.8.3/go.mod h1:0hHEPiOEMAA23EzEl42Rm3FlyKIzkW+LWLvDkuFTZ+Q= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2 h1:H0ImuBpUZRpRf08Pafx9sU74wiTIdjFpiW4BiOYJx10= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.8.2/go.mod h1:QsPtoqAYvumyPU6ToX/5j1PbudN+VSTuvh6mp154ecM= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2 h1:iHcHPaRFpVaXXio0uuVkPtbnEHwClKioFdn9W72ZmYU= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.21.2/go.mod h1:0fEZQHm729mBdvg4sNrAhM6KmHROHJSeS2FwCMRk46k= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2 h1:2BH61+gyc2Jq4stX3L731JIb6VKK8JJcx4c1h+esPPo= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.27.2/go.mod h1:L+NlfC1hilLOqlLLukCj/UDnxlnNrc/oMikcw3Ansyw= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2 h1:VIekoX8eCvSgO9HEr4j+z5SKApN2DgfXudSt02zU6Is= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.7.2/go.mod h1:yzlakB+f8ur4yAHR6lyCABO+HcEtZG3G2Faj6m5/uW8= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2 h1:p+B3NbuH27Dmi5iM88b/YHXd0fcI3Bc81AsRTOjIK6U= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.2/go.mod h1:TwfVVynB/+AKbccSOLk2qZpPL1tdK43BBAiACP6EtSg= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2 h1:9s8yUxXEORj/ChLLf5vGdjmMC3PhDlYRIVd4v23Uavg= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.28.2/go.mod h1:yjej6QfYoYdRIyKXlmbVz8fZYxbuUdl+QBkvLDPgA4k= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1 h1:J7EqPLrdfEWhEw5bH3StHbKtrSwJ6Gdjw5RwzsHXGf0= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.22.1/go.mod h1:hczoIYoLKu7vL+iunL1AlhQ2MqQXckPlqiozrqdZrWQ= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1 h1:bXorYZgdx9W6GLunvU+VPaOITp4BNRuyOuwbPVpTlVo= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.7.1/go.mod h1:Q2BlJ3Y/JEndson0E/GFQN5v3b0vQak71csYFyuOzUs= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1 h1:U5rstX5e6Am2t+Ukv5K1Sbftzxt5aFALMa9YS4jCJoo= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.18.1/go.mod h1:2XA8PE05Qg6BL2YXO4XgfGI9qskJ3cicLE5Qq0aqDdY= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2 h1:NCGehrXvtpFaeH85fU1DWisf3+IgqoGUERY70UfwTUU= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.6.2/go.mod h1:BJeafbecuocdirGCAJ2Vz/rPSK/LRrB5lPBEacqd1eU= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2 h1:6C/iTPoYPCrZOc3JMmvyDNs4hm+JR5p9O3DIfFGgnbo= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.5.2/go.mod h1:/OHYZXQb9KXDdZK5J9C2YS6DJUD2i6ednZ1rK7zpDZ0= +github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1 h1:T/5murYRgKIuieEY4PvLM0WipaSD2MsyR1VuQoKt+MQ= +github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.18.1/go.mod h1:D8P9ZhWfXRE8gNQKUae9pyZGpskS949ezR7QQIGAMp8= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1 h1:Q/0UVLpcYJ+Sye5FWnASMyxmkXw7mPk5i5QFc+me5UU= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.5.1/go.mod h1:DaAUnOHgpL2tX0dejQzW/1b/sFxFhbnIx4PhjY+YuyA= +github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0 h1:JWAFnskRbNKT8x62pZcAMCC+p5hyTEkAyxqFwy39jFA= +github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0/go.mod h1:jMlBoXqrPNX5nXbo6oT7exalqilw1jiLPoIp4Cn0CdI= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0 h1:CSzqycERxxLsB/x6CJUPqTyqrwiQ6WG23XPlal3Szh0= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.13.0/go.mod h1:Pvzgr+UTnWXlRVhiq2eigcLFIBwfgyviy8m4DLMgI0E= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1 h1:wPqWAZX70u2VWIU0PCNhayff8OmGTpI4dZ7VkROwqco= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.9.1/go.mod h1:AiUoMAqQcOlMgDtkVJlqI7P/VGD5xjN3dYjERGnwN/M= +github.com/stackitcloud/terraform-provider-stackit v0.94.0 h1:zE+gTOkzz+3ozjJxMRznKk5x7NegDGJe4SC/6vqz/BU= +github.com/stackitcloud/terraform-provider-stackit v0.94.0/go.mod h1:7m8lkTFUP6PbVgCvjXT+2kr742jbJiq5DEcfT0/+w98= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= @@ -164,8 +167,8 @@ github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0 github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U= golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= @@ -185,7 +188,9 @@ golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0 google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 h1:m8qni9SQFH0tJc1X0vmnpw/0t+AImlSvp30sEupozUg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM= +google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/sdk/dotnet/AuthorizationFolderCustomRole.cs b/sdk/dotnet/AuthorizationFolderCustomRole.cs new file mode 100644 index 0000000..6b6ddc5 --- /dev/null +++ b/sdk/dotnet/AuthorizationFolderCustomRole.cs @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole")] + public partial class AuthorizationFolderCustomRole : global::Pulumi.CustomResource + { + /// + /// A human readable description of the role. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Name of the role + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Permissions for the role + /// + [Output("permissions")] + public Output> Permissions { get; private set; } = null!; + + /// + /// Resource to add the custom role to. + /// + [Output("resourceId")] + public Output ResourceId { get; private set; } = null!; + + /// + /// The ID of the role. + /// + [Output("roleId")] + public Output RoleId { get; private set; } = null!; + + + /// + /// Create a AuthorizationFolderCustomRole resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public AuthorizationFolderCustomRole(string name, AuthorizationFolderCustomRoleArgs args, CustomResourceOptions? options = null) + : base("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole", name, args ?? new AuthorizationFolderCustomRoleArgs(), MakeResourceOptions(options, "")) + { + } + + private AuthorizationFolderCustomRole(string name, Input id, AuthorizationFolderCustomRoleState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing AuthorizationFolderCustomRole resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static AuthorizationFolderCustomRole Get(string name, Input id, AuthorizationFolderCustomRoleState? state = null, CustomResourceOptions? options = null) + { + return new AuthorizationFolderCustomRole(name, id, state, options); + } + } + + public sealed class AuthorizationFolderCustomRoleArgs : global::Pulumi.ResourceArgs + { + /// + /// A human readable description of the role. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + /// + /// Name of the role + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("permissions", required: true)] + private InputList? _permissions; + + /// + /// Permissions for the role + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + public AuthorizationFolderCustomRoleArgs() + { + } + public static new AuthorizationFolderCustomRoleArgs Empty => new AuthorizationFolderCustomRoleArgs(); + } + + public sealed class AuthorizationFolderCustomRoleState : global::Pulumi.ResourceArgs + { + /// + /// A human readable description of the role. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the role + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("permissions")] + private InputList? _permissions; + + /// + /// Permissions for the role + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// Resource to add the custom role to. + /// + [Input("resourceId")] + public Input? ResourceId { get; set; } + + /// + /// The ID of the role. + /// + [Input("roleId")] + public Input? RoleId { get; set; } + + public AuthorizationFolderCustomRoleState() + { + } + public static new AuthorizationFolderCustomRoleState Empty => new AuthorizationFolderCustomRoleState(); + } +} diff --git a/sdk/dotnet/AuthorizationOrganizationCustomRole.cs b/sdk/dotnet/AuthorizationOrganizationCustomRole.cs new file mode 100644 index 0000000..73224e1 --- /dev/null +++ b/sdk/dotnet/AuthorizationOrganizationCustomRole.cs @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole")] + public partial class AuthorizationOrganizationCustomRole : global::Pulumi.CustomResource + { + /// + /// A human readable description of the role. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Name of the role + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Permissions for the role + /// + [Output("permissions")] + public Output> Permissions { get; private set; } = null!; + + /// + /// Resource to add the custom role to. + /// + [Output("resourceId")] + public Output ResourceId { get; private set; } = null!; + + /// + /// The ID of the role. + /// + [Output("roleId")] + public Output RoleId { get; private set; } = null!; + + + /// + /// Create a AuthorizationOrganizationCustomRole resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public AuthorizationOrganizationCustomRole(string name, AuthorizationOrganizationCustomRoleArgs args, CustomResourceOptions? options = null) + : base("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole", name, args ?? new AuthorizationOrganizationCustomRoleArgs(), MakeResourceOptions(options, "")) + { + } + + private AuthorizationOrganizationCustomRole(string name, Input id, AuthorizationOrganizationCustomRoleState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing AuthorizationOrganizationCustomRole resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static AuthorizationOrganizationCustomRole Get(string name, Input id, AuthorizationOrganizationCustomRoleState? state = null, CustomResourceOptions? options = null) + { + return new AuthorizationOrganizationCustomRole(name, id, state, options); + } + } + + public sealed class AuthorizationOrganizationCustomRoleArgs : global::Pulumi.ResourceArgs + { + /// + /// A human readable description of the role. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + /// + /// Name of the role + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("permissions", required: true)] + private InputList? _permissions; + + /// + /// Permissions for the role + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + public AuthorizationOrganizationCustomRoleArgs() + { + } + public static new AuthorizationOrganizationCustomRoleArgs Empty => new AuthorizationOrganizationCustomRoleArgs(); + } + + public sealed class AuthorizationOrganizationCustomRoleState : global::Pulumi.ResourceArgs + { + /// + /// A human readable description of the role. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the role + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("permissions")] + private InputList? _permissions; + + /// + /// Permissions for the role + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// Resource to add the custom role to. + /// + [Input("resourceId")] + public Input? ResourceId { get; set; } + + /// + /// The ID of the role. + /// + [Input("roleId")] + public Input? RoleId { get; set; } + + public AuthorizationOrganizationCustomRoleState() + { + } + public static new AuthorizationOrganizationCustomRoleState Empty => new AuthorizationOrganizationCustomRoleState(); + } +} diff --git a/sdk/dotnet/GetAuthorizationFolderCustomRole.cs b/sdk/dotnet/GetAuthorizationFolderCustomRole.cs new file mode 100644 index 0000000..7b416c8 --- /dev/null +++ b/sdk/dotnet/GetAuthorizationFolderCustomRole.cs @@ -0,0 +1,152 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetAuthorizationFolderCustomRole + { + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_folder_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Task InvokeAsync(GetAuthorizationFolderCustomRoleArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", args ?? new GetAuthorizationFolderCustomRoleArgs(), options.WithDefaults()); + + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_folder_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Output Invoke(GetAuthorizationFolderCustomRoleInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", args ?? new GetAuthorizationFolderCustomRoleInvokeArgs(), options.WithDefaults()); + + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_folder_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Output Invoke(GetAuthorizationFolderCustomRoleInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", args ?? new GetAuthorizationFolderCustomRoleInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAuthorizationFolderCustomRoleArgs : global::Pulumi.InvokeArgs + { + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public string ResourceId { get; set; } = null!; + + /// + /// The ID of the role. + /// + [Input("roleId", required: true)] + public string RoleId { get; set; } = null!; + + public GetAuthorizationFolderCustomRoleArgs() + { + } + public static new GetAuthorizationFolderCustomRoleArgs Empty => new GetAuthorizationFolderCustomRoleArgs(); + } + + public sealed class GetAuthorizationFolderCustomRoleInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + /// + /// The ID of the role. + /// + [Input("roleId", required: true)] + public Input RoleId { get; set; } = null!; + + public GetAuthorizationFolderCustomRoleInvokeArgs() + { + } + public static new GetAuthorizationFolderCustomRoleInvokeArgs Empty => new GetAuthorizationFolderCustomRoleInvokeArgs(); + } + + + [OutputType] + public sealed class GetAuthorizationFolderCustomRoleResult + { + /// + /// A human readable description of the role. + /// + public readonly string Description; + /// + /// Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + /// + public readonly string Id; + /// + /// Name of the role + /// + public readonly string Name; + /// + /// Permissions for the role + /// + public readonly ImmutableArray Permissions; + /// + /// Resource to add the custom role to. + /// + public readonly string ResourceId; + /// + /// The ID of the role. + /// + public readonly string RoleId; + + [OutputConstructor] + private GetAuthorizationFolderCustomRoleResult( + string description, + + string id, + + string name, + + ImmutableArray permissions, + + string resourceId, + + string roleId) + { + Description = description; + Id = id; + Name = name; + Permissions = permissions; + ResourceId = resourceId; + RoleId = roleId; + } + } +} diff --git a/sdk/dotnet/GetAuthorizationOrganizationCustomRole.cs b/sdk/dotnet/GetAuthorizationOrganizationCustomRole.cs new file mode 100644 index 0000000..b6cbf3d --- /dev/null +++ b/sdk/dotnet/GetAuthorizationOrganizationCustomRole.cs @@ -0,0 +1,152 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetAuthorizationOrganizationCustomRole + { + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_organization_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Task InvokeAsync(GetAuthorizationOrganizationCustomRoleArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", args ?? new GetAuthorizationOrganizationCustomRoleArgs(), options.WithDefaults()); + + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_organization_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Output Invoke(GetAuthorizationOrganizationCustomRoleInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", args ?? new GetAuthorizationOrganizationCustomRoleInvokeArgs(), options.WithDefaults()); + + /// + /// Custom Role resource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_authorization_organization_custom_role" "example" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" + /// } + /// ``` + /// + public static Output Invoke(GetAuthorizationOrganizationCustomRoleInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", args ?? new GetAuthorizationOrganizationCustomRoleInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAuthorizationOrganizationCustomRoleArgs : global::Pulumi.InvokeArgs + { + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public string ResourceId { get; set; } = null!; + + /// + /// The ID of the role. + /// + [Input("roleId", required: true)] + public string RoleId { get; set; } = null!; + + public GetAuthorizationOrganizationCustomRoleArgs() + { + } + public static new GetAuthorizationOrganizationCustomRoleArgs Empty => new GetAuthorizationOrganizationCustomRoleArgs(); + } + + public sealed class GetAuthorizationOrganizationCustomRoleInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Resource to add the custom role to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + /// + /// The ID of the role. + /// + [Input("roleId", required: true)] + public Input RoleId { get; set; } = null!; + + public GetAuthorizationOrganizationCustomRoleInvokeArgs() + { + } + public static new GetAuthorizationOrganizationCustomRoleInvokeArgs Empty => new GetAuthorizationOrganizationCustomRoleInvokeArgs(); + } + + + [OutputType] + public sealed class GetAuthorizationOrganizationCustomRoleResult + { + /// + /// A human readable description of the role. + /// + public readonly string Description; + /// + /// Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + /// + public readonly string Id; + /// + /// Name of the role + /// + public readonly string Name; + /// + /// Permissions for the role + /// + public readonly ImmutableArray Permissions; + /// + /// Resource to add the custom role to. + /// + public readonly string ResourceId; + /// + /// The ID of the role. + /// + public readonly string RoleId; + + [OutputConstructor] + private GetAuthorizationOrganizationCustomRoleResult( + string description, + + string id, + + string name, + + ImmutableArray permissions, + + string resourceId, + + string roleId) + { + Description = description; + Id = id; + Name = name; + Permissions = permissions; + ResourceId = resourceId; + RoleId = roleId; + } + } +} diff --git a/sdk/dotnet/GetAuthorizationProjectCustomRole.cs b/sdk/dotnet/GetAuthorizationProjectCustomRole.cs index 8b8f6ee..f96185e 100644 --- a/sdk/dotnet/GetAuthorizationProjectCustomRole.cs +++ b/sdk/dotnet/GetAuthorizationProjectCustomRole.cs @@ -18,8 +18,8 @@ public static class GetAuthorizationProjectCustomRole /// /// ```terraform /// data "stackit_authorization_project_custom_role" "example" { - /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - /// name = "my.custom.role" + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" /// } /// ``` /// @@ -33,8 +33,8 @@ public static Task InvokeAsync(GetAutho /// /// ```terraform /// data "stackit_authorization_project_custom_role" "example" { - /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - /// name = "my.custom.role" + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" /// } /// ``` /// @@ -48,8 +48,8 @@ public static Output Invoke(GetAuthoriz /// /// ```terraform /// data "stackit_authorization_project_custom_role" "example" { - /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - /// name = "my.custom.role" + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// name = "my.custom.role" /// } /// ``` /// diff --git a/sdk/dotnet/GetSecretsmanagerInstanceRoleBindingsV1.cs b/sdk/dotnet/GetSecretsmanagerInstanceRoleBindingsV1.cs new file mode 100644 index 0000000..73cc9a1 --- /dev/null +++ b/sdk/dotnet/GetSecretsmanagerInstanceRoleBindingsV1.cs @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetSecretsmanagerInstanceRoleBindingsV1 + { + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_instance_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetSecretsmanagerInstanceRoleBindingsV1Args args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", args ?? new GetSecretsmanagerInstanceRoleBindingsV1Args(), options.WithDefaults()); + + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_instance_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", args ?? new GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs(), options.WithDefaults()); + + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_instance_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", args ?? new GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetSecretsmanagerInstanceRoleBindingsV1Args : global::Pulumi.InvokeArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + /// + /// The identifier of the resource to get the role bindings for. + /// + [Input("resourceId", required: true)] + public string ResourceId { get; set; } = null!; + + public GetSecretsmanagerInstanceRoleBindingsV1Args() + { + } + public static new GetSecretsmanagerInstanceRoleBindingsV1Args Empty => new GetSecretsmanagerInstanceRoleBindingsV1Args(); + } + + public sealed class GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to get the role bindings for. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + public GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs() + { + } + public static new GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs Empty => new GetSecretsmanagerInstanceRoleBindingsV1InvokeArgs(); + } + + + [OutputType] + public sealed class GetSecretsmanagerInstanceRoleBindingsV1Result + { + /// + /// Terraform's internal resource identifier. It is structured as "`Region`,`ResourceId`". + /// + public readonly string Id; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string? Region; + /// + /// The identifier of the resource to get the role bindings for. + /// + public readonly string ResourceId; + /// + /// List of role bindings. + /// + public readonly ImmutableArray RoleBindings; + + [OutputConstructor] + private GetSecretsmanagerInstanceRoleBindingsV1Result( + string id, + + string? region, + + string resourceId, + + ImmutableArray roleBindings) + { + Id = id; + Region = region; + ResourceId = resourceId; + RoleBindings = roleBindings; + } + } +} diff --git a/sdk/dotnet/GetSecretsmanagerSecretGroupRoleBindingsV1.cs b/sdk/dotnet/GetSecretsmanagerSecretGroupRoleBindingsV1.cs new file mode 100644 index 0000000..c193f3d --- /dev/null +++ b/sdk/dotnet/GetSecretsmanagerSecretGroupRoleBindingsV1.cs @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetSecretsmanagerSecretGroupRoleBindingsV1 + { + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_secret_group_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetSecretsmanagerSecretGroupRoleBindingsV1Args args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", args ?? new GetSecretsmanagerSecretGroupRoleBindingsV1Args(), options.WithDefaults()); + + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_secret_group_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", args ?? new GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs(), options.WithDefaults()); + + /// + /// IAM role binding datasource schema. + /// + /// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_secretsmanager_secret_group_role_bindings_v1" "role_binding" { + /// resource_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", args ?? new GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetSecretsmanagerSecretGroupRoleBindingsV1Args : global::Pulumi.InvokeArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + /// + /// The identifier of the resource to get the role bindings for. + /// + [Input("resourceId", required: true)] + public string ResourceId { get; set; } = null!; + + public GetSecretsmanagerSecretGroupRoleBindingsV1Args() + { + } + public static new GetSecretsmanagerSecretGroupRoleBindingsV1Args Empty => new GetSecretsmanagerSecretGroupRoleBindingsV1Args(); + } + + public sealed class GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to get the role bindings for. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + public GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs() + { + } + public static new GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs Empty => new GetSecretsmanagerSecretGroupRoleBindingsV1InvokeArgs(); + } + + + [OutputType] + public sealed class GetSecretsmanagerSecretGroupRoleBindingsV1Result + { + /// + /// Terraform's internal resource identifier. It is structured as "`Region`,`ResourceId`". + /// + public readonly string Id; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string? Region; + /// + /// The identifier of the resource to get the role bindings for. + /// + public readonly string ResourceId; + /// + /// List of role bindings. + /// + public readonly ImmutableArray RoleBindings; + + [OutputConstructor] + private GetSecretsmanagerSecretGroupRoleBindingsV1Result( + string id, + + string? region, + + string resourceId, + + ImmutableArray roleBindings) + { + Id = id; + Region = region; + ResourceId = resourceId; + RoleBindings = roleBindings; + } + } +} diff --git a/sdk/dotnet/GetSfsProjectLock.cs b/sdk/dotnet/GetSfsProjectLock.cs new file mode 100644 index 0000000..12cab2f --- /dev/null +++ b/sdk/dotnet/GetSfsProjectLock.cs @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetSfsProjectLock + { + /// + /// SFS project lock resource schema. Must have a `Region` specified in the provider configuration. Always use only one project lock per project. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_sfs_project_lock" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetSfsProjectLockArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getSfsProjectLock:getSfsProjectLock", args ?? new GetSfsProjectLockArgs(), options.WithDefaults()); + + /// + /// SFS project lock resource schema. Must have a `Region` specified in the provider configuration. Always use only one project lock per project. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_sfs_project_lock" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSfsProjectLockInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSfsProjectLock:getSfsProjectLock", args ?? new GetSfsProjectLockInvokeArgs(), options.WithDefaults()); + + /// + /// SFS project lock resource schema. Must have a `Region` specified in the provider configuration. Always use only one project lock per project. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_sfs_project_lock" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetSfsProjectLockInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getSfsProjectLock:getSfsProjectLock", args ?? new GetSfsProjectLockInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetSfsProjectLockArgs : global::Pulumi.InvokeArgs + { + /// + /// STACKIT Project ID to which the project lock is associated. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + public GetSfsProjectLockArgs() + { + } + public static new GetSfsProjectLockArgs Empty => new GetSfsProjectLockArgs(); + } + + public sealed class GetSfsProjectLockInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// STACKIT Project ID to which the project lock is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public GetSfsProjectLockInvokeArgs() + { + } + public static new GetSfsProjectLockInvokeArgs Empty => new GetSfsProjectLockInvokeArgs(); + } + + + [OutputType] + public sealed class GetSfsProjectLockResult + { + /// + /// Terraform's internal resource identifier. It is structured as "`ProjectId`,`Region`". + /// + public readonly string Id; + /// + /// ID of the lock. + /// + public readonly string LockId; + /// + /// STACKIT Project ID to which the project lock is associated. + /// + public readonly string ProjectId; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string Region; + + [OutputConstructor] + private GetSfsProjectLockResult( + string id, + + string lockId, + + string projectId, + + string region) + { + Id = id; + LockId = lockId; + ProjectId = projectId; + Region = region; + } + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigArgs.cs index 79e28ce..88bd6ba 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigArgs.cs @@ -36,6 +36,12 @@ public InputList BlockedCountries [Input("optimizer")] public Input? Optimizer { get; set; } + /// + /// A wrapper for a list of redirect rules that allows for redirect settings on a distribution + /// + [Input("redirects")] + public Input? Redirects { get; set; } + [Input("regions", required: true)] private InputList? _regions; diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigGetArgs.cs index 5070448..6f8fe23 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigGetArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigGetArgs.cs @@ -36,6 +36,12 @@ public InputList BlockedCountries [Input("optimizer")] public Input? Optimizer { get; set; } + /// + /// A wrapper for a list of redirect rules that allows for redirect settings on a distribution + /// + [Input("redirects")] + public Input? Redirects { get; set; } + [Input("regions", required: true)] private InputList? _regions; diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsArgs.cs new file mode 100644 index 0000000..4022548 --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsArgs : global::Pulumi.ResourceArgs + { + [Input("rules", required: true)] + private InputList? _rules; + + /// + /// A list of redirect rules. The order of rules matters for evaluation + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + + public CdnDistributionConfigRedirectsArgs() + { + } + public static new CdnDistributionConfigRedirectsArgs Empty => new CdnDistributionConfigRedirectsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsGetArgs.cs new file mode 100644 index 0000000..ac82954 --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("rules", required: true)] + private InputList? _rules; + + /// + /// A list of redirect rules. The order of rules matters for evaluation + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + + public CdnDistributionConfigRedirectsGetArgs() + { + } + public static new CdnDistributionConfigRedirectsGetArgs Empty => new CdnDistributionConfigRedirectsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleArgs.cs new file mode 100644 index 0000000..11b8a59 --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleArgs.cs @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsRuleArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description for the redirect rule + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// A toggle to enable or disable the redirect rule. Default to true + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("matchers", required: true)] + private InputList? _matchers; + + /// + /// A list of matchers that define when this rule should apply. At least one matcher is required + /// + public InputList Matchers + { + get => _matchers ?? (_matchers = new InputList()); + set => _matchers = value; + } + + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + [Input("ruleMatchCondition")] + public Input? RuleMatchCondition { get; set; } + + /// + /// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + /// + [Input("statusCode", required: true)] + public Input StatusCode { get; set; } = null!; + + /// + /// The target URL to redirect to. Must be a valid URI + /// + [Input("targetUrl", required: true)] + public Input TargetUrl { get; set; } = null!; + + public CdnDistributionConfigRedirectsRuleArgs() + { + } + public static new CdnDistributionConfigRedirectsRuleArgs Empty => new CdnDistributionConfigRedirectsRuleArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleGetArgs.cs new file mode 100644 index 0000000..c2a521b --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleGetArgs.cs @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsRuleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description for the redirect rule + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// A toggle to enable or disable the redirect rule. Default to true + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("matchers", required: true)] + private InputList? _matchers; + + /// + /// A list of matchers that define when this rule should apply. At least one matcher is required + /// + public InputList Matchers + { + get => _matchers ?? (_matchers = new InputList()); + set => _matchers = value; + } + + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + [Input("ruleMatchCondition")] + public Input? RuleMatchCondition { get; set; } + + /// + /// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + /// + [Input("statusCode", required: true)] + public Input StatusCode { get; set; } = null!; + + /// + /// The target URL to redirect to. Must be a valid URI + /// + [Input("targetUrl", required: true)] + public Input TargetUrl { get; set; } = null!; + + public CdnDistributionConfigRedirectsRuleGetArgs() + { + } + public static new CdnDistributionConfigRedirectsRuleGetArgs Empty => new CdnDistributionConfigRedirectsRuleGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherArgs.cs new file mode 100644 index 0000000..154f67f --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsRuleMatcherArgs : global::Pulumi.ResourceArgs + { + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + [Input("valueMatchCondition")] + public Input? ValueMatchCondition { get; set; } + + [Input("values", required: true)] + private InputList? _values; + + /// + /// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + /// + public InputList Values + { + get => _values ?? (_values = new InputList()); + set => _values = value; + } + + public CdnDistributionConfigRedirectsRuleMatcherArgs() + { + } + public static new CdnDistributionConfigRedirectsRuleMatcherArgs Empty => new CdnDistributionConfigRedirectsRuleMatcherArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherGetArgs.cs new file mode 100644 index 0000000..55854f9 --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigRedirectsRuleMatcherGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigRedirectsRuleMatcherGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + [Input("valueMatchCondition")] + public Input? ValueMatchCondition { get; set; } + + [Input("values", required: true)] + private InputList? _values; + + /// + /// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + /// + public InputList Values + { + get => _values ?? (_values = new InputList()); + set => _values = value; + } + + public CdnDistributionConfigRedirectsRuleMatcherGetArgs() + { + } + public static new CdnDistributionConfigRedirectsRuleMatcherGetArgs Empty => new CdnDistributionConfigRedirectsRuleMatcherGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/SkeClusterMaintenanceArgs.cs b/sdk/dotnet/Inputs/SkeClusterMaintenanceArgs.cs index b73d561..38d24d9 100644 --- a/sdk/dotnet/Inputs/SkeClusterMaintenanceArgs.cs +++ b/sdk/dotnet/Inputs/SkeClusterMaintenanceArgs.cs @@ -27,14 +27,14 @@ public sealed class SkeClusterMaintenanceArgs : global::Pulumi.ResourceArgs /// /// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - [Input("end", required: true)] - public Input End { get; set; } = null!; + [Input("end")] + public Input? End { get; set; } /// /// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - [Input("start", required: true)] - public Input Start { get; set; } = null!; + [Input("start")] + public Input? Start { get; set; } public SkeClusterMaintenanceArgs() { diff --git a/sdk/dotnet/Inputs/SkeClusterMaintenanceGetArgs.cs b/sdk/dotnet/Inputs/SkeClusterMaintenanceGetArgs.cs index b803ab9..3300a72 100644 --- a/sdk/dotnet/Inputs/SkeClusterMaintenanceGetArgs.cs +++ b/sdk/dotnet/Inputs/SkeClusterMaintenanceGetArgs.cs @@ -27,14 +27,14 @@ public sealed class SkeClusterMaintenanceGetArgs : global::Pulumi.ResourceArgs /// /// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - [Input("end", required: true)] - public Input End { get; set; } = null!; + [Input("end")] + public Input? End { get; set; } /// /// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - [Input("start", required: true)] - public Input Start { get; set; } = null!; + [Input("start")] + public Input? Start { get; set; } public SkeClusterMaintenanceGetArgs() { diff --git a/sdk/dotnet/ObjectstorageCredentialsGroup.cs b/sdk/dotnet/ObjectstorageCredentialsGroup.cs index 2e73b3a..0a90b3a 100644 --- a/sdk/dotnet/ObjectstorageCredentialsGroup.cs +++ b/sdk/dotnet/ObjectstorageCredentialsGroup.cs @@ -44,8 +44,8 @@ public partial class ObjectstorageCredentialsGroup : global::Pulumi.CustomResour /// /// Credentials group uniform resource name (URN) /// - [Output("urn")] - public Output Urn { get; private set; } = null!; + [Output("stackitUrn")] + public Output StackitUrn { get; private set; } = null!; /// @@ -147,8 +147,8 @@ public sealed class ObjectstorageCredentialsGroupState : global::Pulumi.Resource /// /// Credentials group uniform resource name (URN) /// - [Input("urn")] - public Input? Urn { get; set; } + [Input("stackitUrn")] + public Input? StackitUrn { get; set; } public ObjectstorageCredentialsGroupState() { diff --git a/sdk/dotnet/Outputs/CdnDistributionConfig.cs b/sdk/dotnet/Outputs/CdnDistributionConfig.cs index 16a83e6..3fad3e7 100644 --- a/sdk/dotnet/Outputs/CdnDistributionConfig.cs +++ b/sdk/dotnet/Outputs/CdnDistributionConfig.cs @@ -26,6 +26,10 @@ public sealed class CdnDistributionConfig /// public readonly Outputs.CdnDistributionConfigOptimizer? Optimizer; /// + /// A wrapper for a list of redirect rules that allows for redirect settings on a distribution + /// + public readonly Outputs.CdnDistributionConfigRedirects? Redirects; + /// /// The configured regions where content will be hosted /// public readonly ImmutableArray Regions; @@ -38,11 +42,14 @@ private CdnDistributionConfig( Outputs.CdnDistributionConfigOptimizer? optimizer, + Outputs.CdnDistributionConfigRedirects? redirects, + ImmutableArray regions) { Backend = backend; BlockedCountries = blockedCountries; Optimizer = optimizer; + Redirects = redirects; Regions = regions; } } diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigRedirects.cs b/sdk/dotnet/Outputs/CdnDistributionConfigRedirects.cs new file mode 100644 index 0000000..63e66ee --- /dev/null +++ b/sdk/dotnet/Outputs/CdnDistributionConfigRedirects.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class CdnDistributionConfigRedirects + { + /// + /// A list of redirect rules. The order of rules matters for evaluation + /// + public readonly ImmutableArray Rules; + + [OutputConstructor] + private CdnDistributionConfigRedirects(ImmutableArray rules) + { + Rules = rules; + } + } +} diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRule.cs b/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRule.cs new file mode 100644 index 0000000..f74592c --- /dev/null +++ b/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRule.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class CdnDistributionConfigRedirectsRule + { + /// + /// An optional description for the redirect rule + /// + public readonly string? Description; + /// + /// A toggle to enable or disable the redirect rule. Default to true + /// + public readonly bool? Enabled; + /// + /// A list of matchers that define when this rule should apply. At least one matcher is required + /// + public readonly ImmutableArray Matchers; + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + public readonly string? RuleMatchCondition; + /// + /// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + /// + public readonly int StatusCode; + /// + /// The target URL to redirect to. Must be a valid URI + /// + public readonly string TargetUrl; + + [OutputConstructor] + private CdnDistributionConfigRedirectsRule( + string? description, + + bool? enabled, + + ImmutableArray matchers, + + string? ruleMatchCondition, + + int statusCode, + + string targetUrl) + { + Description = description; + Enabled = enabled; + Matchers = matchers; + RuleMatchCondition = ruleMatchCondition; + StatusCode = statusCode; + TargetUrl = targetUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRuleMatcher.cs b/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRuleMatcher.cs new file mode 100644 index 0000000..00a4bcb --- /dev/null +++ b/sdk/dotnet/Outputs/CdnDistributionConfigRedirectsRuleMatcher.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class CdnDistributionConfigRedirectsRuleMatcher + { + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + public readonly string? ValueMatchCondition; + /// + /// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + /// + public readonly ImmutableArray Values; + + [OutputConstructor] + private CdnDistributionConfigRedirectsRuleMatcher( + string? valueMatchCondition, + + ImmutableArray values) + { + ValueMatchCondition = valueMatchCondition; + Values = values; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsResult.cs new file mode 100644 index 0000000..8c1b96d --- /dev/null +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetCdnDistributionConfigRedirectsResult + { + /// + /// A list of redirect rules. The order of rules matters for evaluation + /// + public readonly ImmutableArray Rules; + + [OutputConstructor] + private GetCdnDistributionConfigRedirectsResult(ImmutableArray rules) + { + Rules = rules; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleMatcherResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleMatcherResult.cs new file mode 100644 index 0000000..e446889 --- /dev/null +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleMatcherResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetCdnDistributionConfigRedirectsRuleMatcherResult + { + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + public readonly string ValueMatchCondition; + /// + /// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + /// + public readonly ImmutableArray Values; + + [OutputConstructor] + private GetCdnDistributionConfigRedirectsRuleMatcherResult( + string valueMatchCondition, + + ImmutableArray values) + { + ValueMatchCondition = valueMatchCondition; + Values = values; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleResult.cs new file mode 100644 index 0000000..8eff982 --- /dev/null +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigRedirectsRuleResult.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetCdnDistributionConfigRedirectsRuleResult + { + /// + /// An optional description for the redirect rule + /// + public readonly string Description; + /// + /// A toggle to enable or disable the redirect rule. Default to true + /// + public readonly bool Enabled; + /// + /// A list of matchers that define when this rule should apply. At least one matcher is required + /// + public readonly ImmutableArray Matchers; + /// + /// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + /// + public readonly string RuleMatchCondition; + /// + /// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + /// + public readonly int StatusCode; + /// + /// The target URL to redirect to. Must be a valid URI + /// + public readonly string TargetUrl; + + [OutputConstructor] + private GetCdnDistributionConfigRedirectsRuleResult( + string description, + + bool enabled, + + ImmutableArray matchers, + + string ruleMatchCondition, + + int statusCode, + + string targetUrl) + { + Description = description; + Enabled = enabled; + Matchers = matchers; + RuleMatchCondition = ruleMatchCondition; + StatusCode = statusCode; + TargetUrl = targetUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigResult.cs index f273e65..2f18f5f 100644 --- a/sdk/dotnet/Outputs/GetCdnDistributionConfigResult.cs +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigResult.cs @@ -26,6 +26,10 @@ public sealed class GetCdnDistributionConfigResult /// public readonly Outputs.GetCdnDistributionConfigOptimizerResult Optimizer; /// + /// A wrapper for a list of redirect rules that allows for redirect settings on a distribution + /// + public readonly Outputs.GetCdnDistributionConfigRedirectsResult Redirects; + /// /// The configured regions where content will be hosted /// public readonly ImmutableArray Regions; @@ -38,11 +42,14 @@ private GetCdnDistributionConfigResult( Outputs.GetCdnDistributionConfigOptimizerResult optimizer, + Outputs.GetCdnDistributionConfigRedirectsResult redirects, + ImmutableArray regions) { Backend = backend; BlockedCountries = blockedCountries; Optimizer = optimizer; + Redirects = redirects; Regions = regions; } } diff --git a/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolResult.cs index 84b46a3..37a2a81 100644 --- a/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolResult.cs +++ b/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolResult.cs @@ -21,7 +21,7 @@ public sealed class GetLoadbalancerTargetPoolResult /// /// Here you can setup various session persistence options, so far only "`UseSourceIpAddress`" is supported. /// - public readonly Outputs.GetLoadbalancerTargetPoolSessionPersistenceResult? SessionPersistence; + public readonly Outputs.GetLoadbalancerTargetPoolSessionPersistenceResult SessionPersistence; /// /// Identical port number where each target listens for traffic. /// @@ -37,7 +37,7 @@ private GetLoadbalancerTargetPoolResult( string name, - Outputs.GetLoadbalancerTargetPoolSessionPersistenceResult? sessionPersistence, + Outputs.GetLoadbalancerTargetPoolSessionPersistenceResult sessionPersistence, int targetPort, diff --git a/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolSessionPersistenceResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolSessionPersistenceResult.cs index 1235cdd..afe0826 100644 --- a/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolSessionPersistenceResult.cs +++ b/sdk/dotnet/Outputs/GetLoadbalancerTargetPoolSessionPersistenceResult.cs @@ -16,10 +16,10 @@ public sealed class GetLoadbalancerTargetPoolSessionPersistenceResult /// /// If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. /// - public readonly bool? UseSourceIpAddress; + public readonly bool UseSourceIpAddress; [OutputConstructor] - private GetLoadbalancerTargetPoolSessionPersistenceResult(bool? useSourceIpAddress) + private GetLoadbalancerTargetPoolSessionPersistenceResult(bool useSourceIpAddress) { UseSourceIpAddress = useSourceIpAddress; } diff --git a/sdk/dotnet/Outputs/GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult.cs b/sdk/dotnet/Outputs/GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult.cs new file mode 100644 index 0000000..fd27325 --- /dev/null +++ b/sdk/dotnet/Outputs/GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult + { + /// + /// A valid role defined for the resource. + /// + public readonly string Role; + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + public readonly string Subject; + + [OutputConstructor] + private GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult( + string role, + + string subject) + { + Role = role; + Subject = subject; + } + } +} diff --git a/sdk/dotnet/Outputs/GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult.cs b/sdk/dotnet/Outputs/GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult.cs new file mode 100644 index 0000000..bd79384 --- /dev/null +++ b/sdk/dotnet/Outputs/GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult + { + /// + /// A valid role defined for the resource. + /// + public readonly string Role; + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + public readonly string Subject; + + [OutputConstructor] + private GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult( + string role, + + string subject) + { + Role = role; + Subject = subject; + } + } +} diff --git a/sdk/dotnet/Outputs/SkeClusterMaintenance.cs b/sdk/dotnet/Outputs/SkeClusterMaintenance.cs index 03afe41..4f53b29 100644 --- a/sdk/dotnet/Outputs/SkeClusterMaintenance.cs +++ b/sdk/dotnet/Outputs/SkeClusterMaintenance.cs @@ -24,11 +24,11 @@ public sealed class SkeClusterMaintenance /// /// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - public readonly string End; + public readonly string? End; /// /// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. /// - public readonly string Start; + public readonly string? Start; [OutputConstructor] private SkeClusterMaintenance( @@ -36,9 +36,9 @@ private SkeClusterMaintenance( bool? enableMachineImageVersionUpdates, - string end, + string? end, - string start) + string? start) { EnableKubernetesVersionUpdates = enableKubernetesVersionUpdates; EnableMachineImageVersionUpdates = enableMachineImageVersionUpdates; diff --git a/sdk/dotnet/SecretsmanagerInstanceRoleBindingV1.cs b/sdk/dotnet/SecretsmanagerInstanceRoleBindingV1.cs new file mode 100644 index 0000000..afcf320 --- /dev/null +++ b/sdk/dotnet/SecretsmanagerInstanceRoleBindingV1.cs @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// IAM role binding resource schema. + /// + /// > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ## Import + /// + [StackitResourceType("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1")] + public partial class SecretsmanagerInstanceRoleBindingV1 : global::Pulumi.CustomResource + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Output("resourceId")] + public Output ResourceId { get; private set; } = null!; + + /// + /// A valid role defined for the resource. + /// + [Output("role")] + public Output Role { get; private set; } = null!; + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Output("subject")] + public Output Subject { get; private set; } = null!; + + + /// + /// Create a SecretsmanagerInstanceRoleBindingV1 resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public SecretsmanagerInstanceRoleBindingV1(string name, SecretsmanagerInstanceRoleBindingV1Args args, CustomResourceOptions? options = null) + : base("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1", name, args ?? new SecretsmanagerInstanceRoleBindingV1Args(), MakeResourceOptions(options, "")) + { + } + + private SecretsmanagerInstanceRoleBindingV1(string name, Input id, SecretsmanagerInstanceRoleBindingV1State? state = null, CustomResourceOptions? options = null) + : base("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing SecretsmanagerInstanceRoleBindingV1 resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static SecretsmanagerInstanceRoleBindingV1 Get(string name, Input id, SecretsmanagerInstanceRoleBindingV1State? state = null, CustomResourceOptions? options = null) + { + return new SecretsmanagerInstanceRoleBindingV1(name, id, state, options); + } + } + + public sealed class SecretsmanagerInstanceRoleBindingV1Args : global::Pulumi.ResourceArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + /// + /// A valid role defined for the resource. + /// + [Input("role", required: true)] + public Input Role { get; set; } = null!; + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Input("subject", required: true)] + public Input Subject { get; set; } = null!; + + public SecretsmanagerInstanceRoleBindingV1Args() + { + } + public static new SecretsmanagerInstanceRoleBindingV1Args Empty => new SecretsmanagerInstanceRoleBindingV1Args(); + } + + public sealed class SecretsmanagerInstanceRoleBindingV1State : global::Pulumi.ResourceArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Input("resourceId")] + public Input? ResourceId { get; set; } + + /// + /// A valid role defined for the resource. + /// + [Input("role")] + public Input? Role { get; set; } + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Input("subject")] + public Input? Subject { get; set; } + + public SecretsmanagerInstanceRoleBindingV1State() + { + } + public static new SecretsmanagerInstanceRoleBindingV1State Empty => new SecretsmanagerInstanceRoleBindingV1State(); + } +} diff --git a/sdk/dotnet/SecretsmanagerSecretGroupRoleBindingV1.cs b/sdk/dotnet/SecretsmanagerSecretGroupRoleBindingV1.cs new file mode 100644 index 0000000..24f35c1 --- /dev/null +++ b/sdk/dotnet/SecretsmanagerSecretGroupRoleBindingV1.cs @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// IAM role binding resource schema. + /// + /// > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + /// + /// ## Example Usage + /// + /// ## Import + /// + [StackitResourceType("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1")] + public partial class SecretsmanagerSecretGroupRoleBindingV1 : global::Pulumi.CustomResource + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Output("resourceId")] + public Output ResourceId { get; private set; } = null!; + + /// + /// A valid role defined for the resource. + /// + [Output("role")] + public Output Role { get; private set; } = null!; + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Output("subject")] + public Output Subject { get; private set; } = null!; + + + /// + /// Create a SecretsmanagerSecretGroupRoleBindingV1 resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public SecretsmanagerSecretGroupRoleBindingV1(string name, SecretsmanagerSecretGroupRoleBindingV1Args args, CustomResourceOptions? options = null) + : base("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1", name, args ?? new SecretsmanagerSecretGroupRoleBindingV1Args(), MakeResourceOptions(options, "")) + { + } + + private SecretsmanagerSecretGroupRoleBindingV1(string name, Input id, SecretsmanagerSecretGroupRoleBindingV1State? state = null, CustomResourceOptions? options = null) + : base("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing SecretsmanagerSecretGroupRoleBindingV1 resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static SecretsmanagerSecretGroupRoleBindingV1 Get(string name, Input id, SecretsmanagerSecretGroupRoleBindingV1State? state = null, CustomResourceOptions? options = null) + { + return new SecretsmanagerSecretGroupRoleBindingV1(name, id, state, options); + } + } + + public sealed class SecretsmanagerSecretGroupRoleBindingV1Args : global::Pulumi.ResourceArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + /// + /// A valid role defined for the resource. + /// + [Input("role", required: true)] + public Input Role { get; set; } = null!; + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Input("subject", required: true)] + public Input Subject { get; set; } = null!; + + public SecretsmanagerSecretGroupRoleBindingV1Args() + { + } + public static new SecretsmanagerSecretGroupRoleBindingV1Args Empty => new SecretsmanagerSecretGroupRoleBindingV1Args(); + } + + public sealed class SecretsmanagerSecretGroupRoleBindingV1State : global::Pulumi.ResourceArgs + { + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The identifier of the resource to apply this role binding to. + /// + [Input("resourceId")] + public Input? ResourceId { get; set; } + + /// + /// A valid role defined for the resource. + /// + [Input("role")] + public Input? Role { get; set; } + + /// + /// Identifier of user, service account or client. Usually email address or name in case of clients. + /// + [Input("subject")] + public Input? Subject { get; set; } + + public SecretsmanagerSecretGroupRoleBindingV1State() + { + } + public static new SecretsmanagerSecretGroupRoleBindingV1State Empty => new SecretsmanagerSecretGroupRoleBindingV1State(); + } +} diff --git a/sdk/dotnet/SfsProjectLock.cs b/sdk/dotnet/SfsProjectLock.cs new file mode 100644 index 0000000..4545a47 --- /dev/null +++ b/sdk/dotnet/SfsProjectLock.cs @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// SFS project lock resource schema. Must have a `Region` specified in the provider configuration. Always use only one project lock per project. + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/sfsProjectLock:SfsProjectLock")] + public partial class SfsProjectLock : global::Pulumi.CustomResource + { + /// + /// ID of the lock. + /// + [Output("lockId")] + public Output LockId { get; private set; } = null!; + + /// + /// STACKIT Project ID to which the project lock is associated. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + + /// + /// Create a SfsProjectLock resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public SfsProjectLock(string name, SfsProjectLockArgs args, CustomResourceOptions? options = null) + : base("stackit:index/sfsProjectLock:SfsProjectLock", name, args ?? new SfsProjectLockArgs(), MakeResourceOptions(options, "")) + { + } + + private SfsProjectLock(string name, Input id, SfsProjectLockState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/sfsProjectLock:SfsProjectLock", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing SfsProjectLock resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static SfsProjectLock Get(string name, Input id, SfsProjectLockState? state = null, CustomResourceOptions? options = null) + { + return new SfsProjectLock(name, id, state, options); + } + } + + public sealed class SfsProjectLockArgs : global::Pulumi.ResourceArgs + { + /// + /// STACKIT Project ID to which the project lock is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public SfsProjectLockArgs() + { + } + public static new SfsProjectLockArgs Empty => new SfsProjectLockArgs(); + } + + public sealed class SfsProjectLockState : global::Pulumi.ResourceArgs + { + /// + /// ID of the lock. + /// + [Input("lockId")] + public Input? LockId { get; set; } + + /// + /// STACKIT Project ID to which the project lock is associated. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public SfsProjectLockState() + { + } + public static new SfsProjectLockState Empty => new SfsProjectLockState(); + } +} diff --git a/sdk/dotnet/SfsShare.cs b/sdk/dotnet/SfsShare.cs index 9fee169..bb31813 100644 --- a/sdk/dotnet/SfsShare.cs +++ b/sdk/dotnet/SfsShare.cs @@ -26,7 +26,7 @@ public partial class SfsShare : global::Pulumi.CustomResource /// You can also assign a Share Export Policy after creating the Share /// [Output("exportPolicy")] - public Output ExportPolicy { get; private set; } = null!; + public Output ExportPolicy { get; private set; } = null!; /// /// Mount path of the Share, used to mount the Share @@ -125,8 +125,8 @@ public sealed class SfsShareArgs : global::Pulumi.ResourceArgs /// clients with IPs matching the IP ACL of the Resource Pool hosting this Share. /// You can also assign a Share Export Policy after creating the Share /// - [Input("exportPolicy", required: true)] - public Input ExportPolicy { get; set; } = null!; + [Input("exportPolicy")] + public Input? ExportPolicy { get; set; } /// /// Name of the share. diff --git a/sdk/dotnet/SkeCluster.cs b/sdk/dotnet/SkeCluster.cs index 7e7a673..9fc8325 100644 --- a/sdk/dotnet/SkeCluster.cs +++ b/sdk/dotnet/SkeCluster.cs @@ -69,6 +69,7 @@ public partial class SkeCluster : global::Pulumi.CustomResource /// /// One or more `NodePool` block as defined below. + /// To keep your Terraform plans clean and readable, always append new node pools to the end of the list. /// [Output("nodePools")] public Output> NodePools { get; private set; } = null!; @@ -185,6 +186,7 @@ public InputList Hibernations /// /// One or more `NodePool` block as defined below. + /// To keep your Terraform plans clean and readable, always append new node pools to the end of the list. /// public InputList NodePools { @@ -277,6 +279,7 @@ public InputList Hibernations /// /// One or more `NodePool` block as defined below. + /// To keep your Terraform plans clean and readable, always append new node pools to the end of the list. /// public InputList NodePools { diff --git a/sdk/go/stackit/authorizationFolderCustomRole.go b/sdk/go/stackit/authorizationFolderCustomRole.go new file mode 100644 index 0000000..35b566a --- /dev/null +++ b/sdk/go/stackit/authorizationFolderCustomRole.go @@ -0,0 +1,283 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Custom Role resource schema. +// +// ## Example Usage +type AuthorizationFolderCustomRole struct { + pulumi.CustomResourceState + + // A human readable description of the role. + Description pulumi.StringOutput `pulumi:"description"` + // Name of the role + Name pulumi.StringOutput `pulumi:"name"` + // Permissions for the role + Permissions pulumi.StringArrayOutput `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId pulumi.StringOutput `pulumi:"resourceId"` + // The ID of the role. + RoleId pulumi.StringOutput `pulumi:"roleId"` +} + +// NewAuthorizationFolderCustomRole registers a new resource with the given unique name, arguments, and options. +func NewAuthorizationFolderCustomRole(ctx *pulumi.Context, + name string, args *AuthorizationFolderCustomRoleArgs, opts ...pulumi.ResourceOption) (*AuthorizationFolderCustomRole, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Description == nil { + return nil, errors.New("invalid value for required argument 'Description'") + } + if args.Permissions == nil { + return nil, errors.New("invalid value for required argument 'Permissions'") + } + if args.ResourceId == nil { + return nil, errors.New("invalid value for required argument 'ResourceId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AuthorizationFolderCustomRole + err := ctx.RegisterResource("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAuthorizationFolderCustomRole gets an existing AuthorizationFolderCustomRole resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAuthorizationFolderCustomRole(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AuthorizationFolderCustomRoleState, opts ...pulumi.ResourceOption) (*AuthorizationFolderCustomRole, error) { + var resource AuthorizationFolderCustomRole + err := ctx.ReadResource("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AuthorizationFolderCustomRole resources. +type authorizationFolderCustomRoleState struct { + // A human readable description of the role. + Description *string `pulumi:"description"` + // Name of the role + Name *string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId *string `pulumi:"resourceId"` + // The ID of the role. + RoleId *string `pulumi:"roleId"` +} + +type AuthorizationFolderCustomRoleState struct { + // A human readable description of the role. + Description pulumi.StringPtrInput + // Name of the role + Name pulumi.StringPtrInput + // Permissions for the role + Permissions pulumi.StringArrayInput + // Resource to add the custom role to. + ResourceId pulumi.StringPtrInput + // The ID of the role. + RoleId pulumi.StringPtrInput +} + +func (AuthorizationFolderCustomRoleState) ElementType() reflect.Type { + return reflect.TypeOf((*authorizationFolderCustomRoleState)(nil)).Elem() +} + +type authorizationFolderCustomRoleArgs struct { + // A human readable description of the role. + Description string `pulumi:"description"` + // Name of the role + Name *string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` +} + +// The set of arguments for constructing a AuthorizationFolderCustomRole resource. +type AuthorizationFolderCustomRoleArgs struct { + // A human readable description of the role. + Description pulumi.StringInput + // Name of the role + Name pulumi.StringPtrInput + // Permissions for the role + Permissions pulumi.StringArrayInput + // Resource to add the custom role to. + ResourceId pulumi.StringInput +} + +func (AuthorizationFolderCustomRoleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*authorizationFolderCustomRoleArgs)(nil)).Elem() +} + +type AuthorizationFolderCustomRoleInput interface { + pulumi.Input + + ToAuthorizationFolderCustomRoleOutput() AuthorizationFolderCustomRoleOutput + ToAuthorizationFolderCustomRoleOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleOutput +} + +func (*AuthorizationFolderCustomRole) ElementType() reflect.Type { + return reflect.TypeOf((**AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (i *AuthorizationFolderCustomRole) ToAuthorizationFolderCustomRoleOutput() AuthorizationFolderCustomRoleOutput { + return i.ToAuthorizationFolderCustomRoleOutputWithContext(context.Background()) +} + +func (i *AuthorizationFolderCustomRole) ToAuthorizationFolderCustomRoleOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationFolderCustomRoleOutput) +} + +// AuthorizationFolderCustomRoleArrayInput is an input type that accepts AuthorizationFolderCustomRoleArray and AuthorizationFolderCustomRoleArrayOutput values. +// You can construct a concrete instance of `AuthorizationFolderCustomRoleArrayInput` via: +// +// AuthorizationFolderCustomRoleArray{ AuthorizationFolderCustomRoleArgs{...} } +type AuthorizationFolderCustomRoleArrayInput interface { + pulumi.Input + + ToAuthorizationFolderCustomRoleArrayOutput() AuthorizationFolderCustomRoleArrayOutput + ToAuthorizationFolderCustomRoleArrayOutputWithContext(context.Context) AuthorizationFolderCustomRoleArrayOutput +} + +type AuthorizationFolderCustomRoleArray []AuthorizationFolderCustomRoleInput + +func (AuthorizationFolderCustomRoleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (i AuthorizationFolderCustomRoleArray) ToAuthorizationFolderCustomRoleArrayOutput() AuthorizationFolderCustomRoleArrayOutput { + return i.ToAuthorizationFolderCustomRoleArrayOutputWithContext(context.Background()) +} + +func (i AuthorizationFolderCustomRoleArray) ToAuthorizationFolderCustomRoleArrayOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationFolderCustomRoleArrayOutput) +} + +// AuthorizationFolderCustomRoleMapInput is an input type that accepts AuthorizationFolderCustomRoleMap and AuthorizationFolderCustomRoleMapOutput values. +// You can construct a concrete instance of `AuthorizationFolderCustomRoleMapInput` via: +// +// AuthorizationFolderCustomRoleMap{ "key": AuthorizationFolderCustomRoleArgs{...} } +type AuthorizationFolderCustomRoleMapInput interface { + pulumi.Input + + ToAuthorizationFolderCustomRoleMapOutput() AuthorizationFolderCustomRoleMapOutput + ToAuthorizationFolderCustomRoleMapOutputWithContext(context.Context) AuthorizationFolderCustomRoleMapOutput +} + +type AuthorizationFolderCustomRoleMap map[string]AuthorizationFolderCustomRoleInput + +func (AuthorizationFolderCustomRoleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (i AuthorizationFolderCustomRoleMap) ToAuthorizationFolderCustomRoleMapOutput() AuthorizationFolderCustomRoleMapOutput { + return i.ToAuthorizationFolderCustomRoleMapOutputWithContext(context.Background()) +} + +func (i AuthorizationFolderCustomRoleMap) ToAuthorizationFolderCustomRoleMapOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationFolderCustomRoleMapOutput) +} + +type AuthorizationFolderCustomRoleOutput struct{ *pulumi.OutputState } + +func (AuthorizationFolderCustomRoleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (o AuthorizationFolderCustomRoleOutput) ToAuthorizationFolderCustomRoleOutput() AuthorizationFolderCustomRoleOutput { + return o +} + +func (o AuthorizationFolderCustomRoleOutput) ToAuthorizationFolderCustomRoleOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleOutput { + return o +} + +// A human readable description of the role. +func (o AuthorizationFolderCustomRoleOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationFolderCustomRole) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// Name of the role +func (o AuthorizationFolderCustomRoleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationFolderCustomRole) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Permissions for the role +func (o AuthorizationFolderCustomRoleOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AuthorizationFolderCustomRole) pulumi.StringArrayOutput { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Resource to add the custom role to. +func (o AuthorizationFolderCustomRoleOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationFolderCustomRole) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) +} + +// The ID of the role. +func (o AuthorizationFolderCustomRoleOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationFolderCustomRole) pulumi.StringOutput { return v.RoleId }).(pulumi.StringOutput) +} + +type AuthorizationFolderCustomRoleArrayOutput struct{ *pulumi.OutputState } + +func (AuthorizationFolderCustomRoleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (o AuthorizationFolderCustomRoleArrayOutput) ToAuthorizationFolderCustomRoleArrayOutput() AuthorizationFolderCustomRoleArrayOutput { + return o +} + +func (o AuthorizationFolderCustomRoleArrayOutput) ToAuthorizationFolderCustomRoleArrayOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleArrayOutput { + return o +} + +func (o AuthorizationFolderCustomRoleArrayOutput) Index(i pulumi.IntInput) AuthorizationFolderCustomRoleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AuthorizationFolderCustomRole { + return vs[0].([]*AuthorizationFolderCustomRole)[vs[1].(int)] + }).(AuthorizationFolderCustomRoleOutput) +} + +type AuthorizationFolderCustomRoleMapOutput struct{ *pulumi.OutputState } + +func (AuthorizationFolderCustomRoleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AuthorizationFolderCustomRole)(nil)).Elem() +} + +func (o AuthorizationFolderCustomRoleMapOutput) ToAuthorizationFolderCustomRoleMapOutput() AuthorizationFolderCustomRoleMapOutput { + return o +} + +func (o AuthorizationFolderCustomRoleMapOutput) ToAuthorizationFolderCustomRoleMapOutputWithContext(ctx context.Context) AuthorizationFolderCustomRoleMapOutput { + return o +} + +func (o AuthorizationFolderCustomRoleMapOutput) MapIndex(k pulumi.StringInput) AuthorizationFolderCustomRoleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AuthorizationFolderCustomRole { + return vs[0].(map[string]*AuthorizationFolderCustomRole)[vs[1].(string)] + }).(AuthorizationFolderCustomRoleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationFolderCustomRoleInput)(nil)).Elem(), &AuthorizationFolderCustomRole{}) + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationFolderCustomRoleArrayInput)(nil)).Elem(), AuthorizationFolderCustomRoleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationFolderCustomRoleMapInput)(nil)).Elem(), AuthorizationFolderCustomRoleMap{}) + pulumi.RegisterOutputType(AuthorizationFolderCustomRoleOutput{}) + pulumi.RegisterOutputType(AuthorizationFolderCustomRoleArrayOutput{}) + pulumi.RegisterOutputType(AuthorizationFolderCustomRoleMapOutput{}) +} diff --git a/sdk/go/stackit/authorizationOrganizationCustomRole.go b/sdk/go/stackit/authorizationOrganizationCustomRole.go new file mode 100644 index 0000000..33afcd9 --- /dev/null +++ b/sdk/go/stackit/authorizationOrganizationCustomRole.go @@ -0,0 +1,283 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Custom Role resource schema. +// +// ## Example Usage +type AuthorizationOrganizationCustomRole struct { + pulumi.CustomResourceState + + // A human readable description of the role. + Description pulumi.StringOutput `pulumi:"description"` + // Name of the role + Name pulumi.StringOutput `pulumi:"name"` + // Permissions for the role + Permissions pulumi.StringArrayOutput `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId pulumi.StringOutput `pulumi:"resourceId"` + // The ID of the role. + RoleId pulumi.StringOutput `pulumi:"roleId"` +} + +// NewAuthorizationOrganizationCustomRole registers a new resource with the given unique name, arguments, and options. +func NewAuthorizationOrganizationCustomRole(ctx *pulumi.Context, + name string, args *AuthorizationOrganizationCustomRoleArgs, opts ...pulumi.ResourceOption) (*AuthorizationOrganizationCustomRole, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Description == nil { + return nil, errors.New("invalid value for required argument 'Description'") + } + if args.Permissions == nil { + return nil, errors.New("invalid value for required argument 'Permissions'") + } + if args.ResourceId == nil { + return nil, errors.New("invalid value for required argument 'ResourceId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AuthorizationOrganizationCustomRole + err := ctx.RegisterResource("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAuthorizationOrganizationCustomRole gets an existing AuthorizationOrganizationCustomRole resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAuthorizationOrganizationCustomRole(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AuthorizationOrganizationCustomRoleState, opts ...pulumi.ResourceOption) (*AuthorizationOrganizationCustomRole, error) { + var resource AuthorizationOrganizationCustomRole + err := ctx.ReadResource("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AuthorizationOrganizationCustomRole resources. +type authorizationOrganizationCustomRoleState struct { + // A human readable description of the role. + Description *string `pulumi:"description"` + // Name of the role + Name *string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId *string `pulumi:"resourceId"` + // The ID of the role. + RoleId *string `pulumi:"roleId"` +} + +type AuthorizationOrganizationCustomRoleState struct { + // A human readable description of the role. + Description pulumi.StringPtrInput + // Name of the role + Name pulumi.StringPtrInput + // Permissions for the role + Permissions pulumi.StringArrayInput + // Resource to add the custom role to. + ResourceId pulumi.StringPtrInput + // The ID of the role. + RoleId pulumi.StringPtrInput +} + +func (AuthorizationOrganizationCustomRoleState) ElementType() reflect.Type { + return reflect.TypeOf((*authorizationOrganizationCustomRoleState)(nil)).Elem() +} + +type authorizationOrganizationCustomRoleArgs struct { + // A human readable description of the role. + Description string `pulumi:"description"` + // Name of the role + Name *string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` +} + +// The set of arguments for constructing a AuthorizationOrganizationCustomRole resource. +type AuthorizationOrganizationCustomRoleArgs struct { + // A human readable description of the role. + Description pulumi.StringInput + // Name of the role + Name pulumi.StringPtrInput + // Permissions for the role + Permissions pulumi.StringArrayInput + // Resource to add the custom role to. + ResourceId pulumi.StringInput +} + +func (AuthorizationOrganizationCustomRoleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*authorizationOrganizationCustomRoleArgs)(nil)).Elem() +} + +type AuthorizationOrganizationCustomRoleInput interface { + pulumi.Input + + ToAuthorizationOrganizationCustomRoleOutput() AuthorizationOrganizationCustomRoleOutput + ToAuthorizationOrganizationCustomRoleOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleOutput +} + +func (*AuthorizationOrganizationCustomRole) ElementType() reflect.Type { + return reflect.TypeOf((**AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (i *AuthorizationOrganizationCustomRole) ToAuthorizationOrganizationCustomRoleOutput() AuthorizationOrganizationCustomRoleOutput { + return i.ToAuthorizationOrganizationCustomRoleOutputWithContext(context.Background()) +} + +func (i *AuthorizationOrganizationCustomRole) ToAuthorizationOrganizationCustomRoleOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationOrganizationCustomRoleOutput) +} + +// AuthorizationOrganizationCustomRoleArrayInput is an input type that accepts AuthorizationOrganizationCustomRoleArray and AuthorizationOrganizationCustomRoleArrayOutput values. +// You can construct a concrete instance of `AuthorizationOrganizationCustomRoleArrayInput` via: +// +// AuthorizationOrganizationCustomRoleArray{ AuthorizationOrganizationCustomRoleArgs{...} } +type AuthorizationOrganizationCustomRoleArrayInput interface { + pulumi.Input + + ToAuthorizationOrganizationCustomRoleArrayOutput() AuthorizationOrganizationCustomRoleArrayOutput + ToAuthorizationOrganizationCustomRoleArrayOutputWithContext(context.Context) AuthorizationOrganizationCustomRoleArrayOutput +} + +type AuthorizationOrganizationCustomRoleArray []AuthorizationOrganizationCustomRoleInput + +func (AuthorizationOrganizationCustomRoleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (i AuthorizationOrganizationCustomRoleArray) ToAuthorizationOrganizationCustomRoleArrayOutput() AuthorizationOrganizationCustomRoleArrayOutput { + return i.ToAuthorizationOrganizationCustomRoleArrayOutputWithContext(context.Background()) +} + +func (i AuthorizationOrganizationCustomRoleArray) ToAuthorizationOrganizationCustomRoleArrayOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationOrganizationCustomRoleArrayOutput) +} + +// AuthorizationOrganizationCustomRoleMapInput is an input type that accepts AuthorizationOrganizationCustomRoleMap and AuthorizationOrganizationCustomRoleMapOutput values. +// You can construct a concrete instance of `AuthorizationOrganizationCustomRoleMapInput` via: +// +// AuthorizationOrganizationCustomRoleMap{ "key": AuthorizationOrganizationCustomRoleArgs{...} } +type AuthorizationOrganizationCustomRoleMapInput interface { + pulumi.Input + + ToAuthorizationOrganizationCustomRoleMapOutput() AuthorizationOrganizationCustomRoleMapOutput + ToAuthorizationOrganizationCustomRoleMapOutputWithContext(context.Context) AuthorizationOrganizationCustomRoleMapOutput +} + +type AuthorizationOrganizationCustomRoleMap map[string]AuthorizationOrganizationCustomRoleInput + +func (AuthorizationOrganizationCustomRoleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (i AuthorizationOrganizationCustomRoleMap) ToAuthorizationOrganizationCustomRoleMapOutput() AuthorizationOrganizationCustomRoleMapOutput { + return i.ToAuthorizationOrganizationCustomRoleMapOutputWithContext(context.Background()) +} + +func (i AuthorizationOrganizationCustomRoleMap) ToAuthorizationOrganizationCustomRoleMapOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuthorizationOrganizationCustomRoleMapOutput) +} + +type AuthorizationOrganizationCustomRoleOutput struct{ *pulumi.OutputState } + +func (AuthorizationOrganizationCustomRoleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (o AuthorizationOrganizationCustomRoleOutput) ToAuthorizationOrganizationCustomRoleOutput() AuthorizationOrganizationCustomRoleOutput { + return o +} + +func (o AuthorizationOrganizationCustomRoleOutput) ToAuthorizationOrganizationCustomRoleOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleOutput { + return o +} + +// A human readable description of the role. +func (o AuthorizationOrganizationCustomRoleOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationOrganizationCustomRole) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// Name of the role +func (o AuthorizationOrganizationCustomRoleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationOrganizationCustomRole) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Permissions for the role +func (o AuthorizationOrganizationCustomRoleOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AuthorizationOrganizationCustomRole) pulumi.StringArrayOutput { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Resource to add the custom role to. +func (o AuthorizationOrganizationCustomRoleOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationOrganizationCustomRole) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) +} + +// The ID of the role. +func (o AuthorizationOrganizationCustomRoleOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v *AuthorizationOrganizationCustomRole) pulumi.StringOutput { return v.RoleId }).(pulumi.StringOutput) +} + +type AuthorizationOrganizationCustomRoleArrayOutput struct{ *pulumi.OutputState } + +func (AuthorizationOrganizationCustomRoleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (o AuthorizationOrganizationCustomRoleArrayOutput) ToAuthorizationOrganizationCustomRoleArrayOutput() AuthorizationOrganizationCustomRoleArrayOutput { + return o +} + +func (o AuthorizationOrganizationCustomRoleArrayOutput) ToAuthorizationOrganizationCustomRoleArrayOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleArrayOutput { + return o +} + +func (o AuthorizationOrganizationCustomRoleArrayOutput) Index(i pulumi.IntInput) AuthorizationOrganizationCustomRoleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AuthorizationOrganizationCustomRole { + return vs[0].([]*AuthorizationOrganizationCustomRole)[vs[1].(int)] + }).(AuthorizationOrganizationCustomRoleOutput) +} + +type AuthorizationOrganizationCustomRoleMapOutput struct{ *pulumi.OutputState } + +func (AuthorizationOrganizationCustomRoleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AuthorizationOrganizationCustomRole)(nil)).Elem() +} + +func (o AuthorizationOrganizationCustomRoleMapOutput) ToAuthorizationOrganizationCustomRoleMapOutput() AuthorizationOrganizationCustomRoleMapOutput { + return o +} + +func (o AuthorizationOrganizationCustomRoleMapOutput) ToAuthorizationOrganizationCustomRoleMapOutputWithContext(ctx context.Context) AuthorizationOrganizationCustomRoleMapOutput { + return o +} + +func (o AuthorizationOrganizationCustomRoleMapOutput) MapIndex(k pulumi.StringInput) AuthorizationOrganizationCustomRoleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AuthorizationOrganizationCustomRole { + return vs[0].(map[string]*AuthorizationOrganizationCustomRole)[vs[1].(string)] + }).(AuthorizationOrganizationCustomRoleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationOrganizationCustomRoleInput)(nil)).Elem(), &AuthorizationOrganizationCustomRole{}) + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationOrganizationCustomRoleArrayInput)(nil)).Elem(), AuthorizationOrganizationCustomRoleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationOrganizationCustomRoleMapInput)(nil)).Elem(), AuthorizationOrganizationCustomRoleMap{}) + pulumi.RegisterOutputType(AuthorizationOrganizationCustomRoleOutput{}) + pulumi.RegisterOutputType(AuthorizationOrganizationCustomRoleArrayOutput{}) + pulumi.RegisterOutputType(AuthorizationOrganizationCustomRoleMapOutput{}) +} diff --git a/sdk/go/stackit/getAuthorizationFolderCustomRole.go b/sdk/go/stackit/getAuthorizationFolderCustomRole.go new file mode 100644 index 0000000..7494610 --- /dev/null +++ b/sdk/go/stackit/getAuthorizationFolderCustomRole.go @@ -0,0 +1,119 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Custom Role resource schema. +// +// ## Example Usage +func LookupAuthorizationFolderCustomRole(ctx *pulumi.Context, args *LookupAuthorizationFolderCustomRoleArgs, opts ...pulumi.InvokeOption) (*LookupAuthorizationFolderCustomRoleResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAuthorizationFolderCustomRoleResult + err := ctx.Invoke("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAuthorizationFolderCustomRole. +type LookupAuthorizationFolderCustomRoleArgs struct { + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` + // The ID of the role. + RoleId string `pulumi:"roleId"` +} + +// A collection of values returned by getAuthorizationFolderCustomRole. +type LookupAuthorizationFolderCustomRoleResult struct { + // A human readable description of the role. + Description string `pulumi:"description"` + // Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + Id string `pulumi:"id"` + // Name of the role + Name string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` + // The ID of the role. + RoleId string `pulumi:"roleId"` +} + +func LookupAuthorizationFolderCustomRoleOutput(ctx *pulumi.Context, args LookupAuthorizationFolderCustomRoleOutputArgs, opts ...pulumi.InvokeOption) LookupAuthorizationFolderCustomRoleResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupAuthorizationFolderCustomRoleResultOutput, error) { + args := v.(LookupAuthorizationFolderCustomRoleArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", args, LookupAuthorizationFolderCustomRoleResultOutput{}, options).(LookupAuthorizationFolderCustomRoleResultOutput), nil + }).(LookupAuthorizationFolderCustomRoleResultOutput) +} + +// A collection of arguments for invoking getAuthorizationFolderCustomRole. +type LookupAuthorizationFolderCustomRoleOutputArgs struct { + // Resource to add the custom role to. + ResourceId pulumi.StringInput `pulumi:"resourceId"` + // The ID of the role. + RoleId pulumi.StringInput `pulumi:"roleId"` +} + +func (LookupAuthorizationFolderCustomRoleOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAuthorizationFolderCustomRoleArgs)(nil)).Elem() +} + +// A collection of values returned by getAuthorizationFolderCustomRole. +type LookupAuthorizationFolderCustomRoleResultOutput struct{ *pulumi.OutputState } + +func (LookupAuthorizationFolderCustomRoleResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAuthorizationFolderCustomRoleResult)(nil)).Elem() +} + +func (o LookupAuthorizationFolderCustomRoleResultOutput) ToLookupAuthorizationFolderCustomRoleResultOutput() LookupAuthorizationFolderCustomRoleResultOutput { + return o +} + +func (o LookupAuthorizationFolderCustomRoleResultOutput) ToLookupAuthorizationFolderCustomRoleResultOutputWithContext(ctx context.Context) LookupAuthorizationFolderCustomRoleResultOutput { + return o +} + +// A human readable description of the role. +func (o LookupAuthorizationFolderCustomRoleResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) string { return v.Description }).(pulumi.StringOutput) +} + +// Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". +func (o LookupAuthorizationFolderCustomRoleResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the role +func (o LookupAuthorizationFolderCustomRoleResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Permissions for the role +func (o LookupAuthorizationFolderCustomRoleResultOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Resource to add the custom role to. +func (o LookupAuthorizationFolderCustomRoleResultOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) string { return v.ResourceId }).(pulumi.StringOutput) +} + +// The ID of the role. +func (o LookupAuthorizationFolderCustomRoleResultOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationFolderCustomRoleResult) string { return v.RoleId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAuthorizationFolderCustomRoleResultOutput{}) +} diff --git a/sdk/go/stackit/getAuthorizationOrganizationCustomRole.go b/sdk/go/stackit/getAuthorizationOrganizationCustomRole.go new file mode 100644 index 0000000..2c0bac1 --- /dev/null +++ b/sdk/go/stackit/getAuthorizationOrganizationCustomRole.go @@ -0,0 +1,119 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Custom Role resource schema. +// +// ## Example Usage +func LookupAuthorizationOrganizationCustomRole(ctx *pulumi.Context, args *LookupAuthorizationOrganizationCustomRoleArgs, opts ...pulumi.InvokeOption) (*LookupAuthorizationOrganizationCustomRoleResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAuthorizationOrganizationCustomRoleResult + err := ctx.Invoke("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAuthorizationOrganizationCustomRole. +type LookupAuthorizationOrganizationCustomRoleArgs struct { + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` + // The ID of the role. + RoleId string `pulumi:"roleId"` +} + +// A collection of values returned by getAuthorizationOrganizationCustomRole. +type LookupAuthorizationOrganizationCustomRoleResult struct { + // A human readable description of the role. + Description string `pulumi:"description"` + // Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + Id string `pulumi:"id"` + // Name of the role + Name string `pulumi:"name"` + // Permissions for the role + Permissions []string `pulumi:"permissions"` + // Resource to add the custom role to. + ResourceId string `pulumi:"resourceId"` + // The ID of the role. + RoleId string `pulumi:"roleId"` +} + +func LookupAuthorizationOrganizationCustomRoleOutput(ctx *pulumi.Context, args LookupAuthorizationOrganizationCustomRoleOutputArgs, opts ...pulumi.InvokeOption) LookupAuthorizationOrganizationCustomRoleResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupAuthorizationOrganizationCustomRoleResultOutput, error) { + args := v.(LookupAuthorizationOrganizationCustomRoleArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", args, LookupAuthorizationOrganizationCustomRoleResultOutput{}, options).(LookupAuthorizationOrganizationCustomRoleResultOutput), nil + }).(LookupAuthorizationOrganizationCustomRoleResultOutput) +} + +// A collection of arguments for invoking getAuthorizationOrganizationCustomRole. +type LookupAuthorizationOrganizationCustomRoleOutputArgs struct { + // Resource to add the custom role to. + ResourceId pulumi.StringInput `pulumi:"resourceId"` + // The ID of the role. + RoleId pulumi.StringInput `pulumi:"roleId"` +} + +func (LookupAuthorizationOrganizationCustomRoleOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAuthorizationOrganizationCustomRoleArgs)(nil)).Elem() +} + +// A collection of values returned by getAuthorizationOrganizationCustomRole. +type LookupAuthorizationOrganizationCustomRoleResultOutput struct{ *pulumi.OutputState } + +func (LookupAuthorizationOrganizationCustomRoleResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAuthorizationOrganizationCustomRoleResult)(nil)).Elem() +} + +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) ToLookupAuthorizationOrganizationCustomRoleResultOutput() LookupAuthorizationOrganizationCustomRoleResultOutput { + return o +} + +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) ToLookupAuthorizationOrganizationCustomRoleResultOutputWithContext(ctx context.Context) LookupAuthorizationOrganizationCustomRoleResultOutput { + return o +} + +// A human readable description of the role. +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) string { return v.Description }).(pulumi.StringOutput) +} + +// Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the role +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Permissions for the role +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Resource to add the custom role to. +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) string { return v.ResourceId }).(pulumi.StringOutput) +} + +// The ID of the role. +func (o LookupAuthorizationOrganizationCustomRoleResultOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v LookupAuthorizationOrganizationCustomRoleResult) string { return v.RoleId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAuthorizationOrganizationCustomRoleResultOutput{}) +} diff --git a/sdk/go/stackit/getSecretsmanagerInstanceRoleBindingsV1.go b/sdk/go/stackit/getSecretsmanagerInstanceRoleBindingsV1.go new file mode 100644 index 0000000..ed87f31 --- /dev/null +++ b/sdk/go/stackit/getSecretsmanagerInstanceRoleBindingsV1.go @@ -0,0 +1,109 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// IAM role binding datasource schema. +// +// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. +// +// ## Example Usage +func GetSecretsmanagerInstanceRoleBindingsV1(ctx *pulumi.Context, args *GetSecretsmanagerInstanceRoleBindingsV1Args, opts ...pulumi.InvokeOption) (*GetSecretsmanagerInstanceRoleBindingsV1Result, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetSecretsmanagerInstanceRoleBindingsV1Result + err := ctx.Invoke("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getSecretsmanagerInstanceRoleBindingsV1. +type GetSecretsmanagerInstanceRoleBindingsV1Args struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId string `pulumi:"resourceId"` +} + +// A collection of values returned by getSecretsmanagerInstanceRoleBindingsV1. +type GetSecretsmanagerInstanceRoleBindingsV1Result struct { + // Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". + Id string `pulumi:"id"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId string `pulumi:"resourceId"` + // List of role bindings. + RoleBindings []GetSecretsmanagerInstanceRoleBindingsV1RoleBinding `pulumi:"roleBindings"` +} + +func GetSecretsmanagerInstanceRoleBindingsV1Output(ctx *pulumi.Context, args GetSecretsmanagerInstanceRoleBindingsV1OutputArgs, opts ...pulumi.InvokeOption) GetSecretsmanagerInstanceRoleBindingsV1ResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (GetSecretsmanagerInstanceRoleBindingsV1ResultOutput, error) { + args := v.(GetSecretsmanagerInstanceRoleBindingsV1Args) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", args, GetSecretsmanagerInstanceRoleBindingsV1ResultOutput{}, options).(GetSecretsmanagerInstanceRoleBindingsV1ResultOutput), nil + }).(GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) +} + +// A collection of arguments for invoking getSecretsmanagerInstanceRoleBindingsV1. +type GetSecretsmanagerInstanceRoleBindingsV1OutputArgs struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId pulumi.StringInput `pulumi:"resourceId"` +} + +func (GetSecretsmanagerInstanceRoleBindingsV1OutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1Args)(nil)).Elem() +} + +// A collection of values returned by getSecretsmanagerInstanceRoleBindingsV1. +type GetSecretsmanagerInstanceRoleBindingsV1ResultOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1Result)(nil)).Elem() +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) ToGetSecretsmanagerInstanceRoleBindingsV1ResultOutput() GetSecretsmanagerInstanceRoleBindingsV1ResultOutput { + return o +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) ToGetSecretsmanagerInstanceRoleBindingsV1ResultOutputWithContext(ctx context.Context) GetSecretsmanagerInstanceRoleBindingsV1ResultOutput { + return o +} + +// Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1Result) string { return v.Id }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1Result) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// The identifier of the resource to get the role bindings for. +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1Result) string { return v.ResourceId }).(pulumi.StringOutput) +} + +// List of role bindings. +func (o GetSecretsmanagerInstanceRoleBindingsV1ResultOutput) RoleBindings() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1Result) []GetSecretsmanagerInstanceRoleBindingsV1RoleBinding { + return v.RoleBindings + }).(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSecretsmanagerInstanceRoleBindingsV1ResultOutput{}) +} diff --git a/sdk/go/stackit/getSecretsmanagerSecretGroupRoleBindingsV1.go b/sdk/go/stackit/getSecretsmanagerSecretGroupRoleBindingsV1.go new file mode 100644 index 0000000..8d779ec --- /dev/null +++ b/sdk/go/stackit/getSecretsmanagerSecretGroupRoleBindingsV1.go @@ -0,0 +1,109 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// IAM role binding datasource schema. +// +// > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. +// +// ## Example Usage +func GetSecretsmanagerSecretGroupRoleBindingsV1(ctx *pulumi.Context, args *GetSecretsmanagerSecretGroupRoleBindingsV1Args, opts ...pulumi.InvokeOption) (*GetSecretsmanagerSecretGroupRoleBindingsV1Result, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetSecretsmanagerSecretGroupRoleBindingsV1Result + err := ctx.Invoke("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getSecretsmanagerSecretGroupRoleBindingsV1. +type GetSecretsmanagerSecretGroupRoleBindingsV1Args struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId string `pulumi:"resourceId"` +} + +// A collection of values returned by getSecretsmanagerSecretGroupRoleBindingsV1. +type GetSecretsmanagerSecretGroupRoleBindingsV1Result struct { + // Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". + Id string `pulumi:"id"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId string `pulumi:"resourceId"` + // List of role bindings. + RoleBindings []GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding `pulumi:"roleBindings"` +} + +func GetSecretsmanagerSecretGroupRoleBindingsV1Output(ctx *pulumi.Context, args GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs, opts ...pulumi.InvokeOption) GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput, error) { + args := v.(GetSecretsmanagerSecretGroupRoleBindingsV1Args) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", args, GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput{}, options).(GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput), nil + }).(GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) +} + +// A collection of arguments for invoking getSecretsmanagerSecretGroupRoleBindingsV1. +type GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` + // The identifier of the resource to get the role bindings for. + ResourceId pulumi.StringInput `pulumi:"resourceId"` +} + +func (GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1Args)(nil)).Elem() +} + +// A collection of values returned by getSecretsmanagerSecretGroupRoleBindingsV1. +type GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1Result)(nil)).Elem() +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput() GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput { + return o +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1ResultOutputWithContext(ctx context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput { + return o +} + +// Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1Result) string { return v.Id }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1Result) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// The identifier of the resource to get the role bindings for. +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1Result) string { return v.ResourceId }).(pulumi.StringOutput) +} + +// List of role bindings. +func (o GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput) RoleBindings() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1Result) []GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding { + return v.RoleBindings + }).(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSecretsmanagerSecretGroupRoleBindingsV1ResultOutput{}) +} diff --git a/sdk/go/stackit/getSfsProjectLock.go b/sdk/go/stackit/getSfsProjectLock.go new file mode 100644 index 0000000..ecb6a54 --- /dev/null +++ b/sdk/go/stackit/getSfsProjectLock.go @@ -0,0 +1,105 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. +// +// ## Example Usage +func LookupSfsProjectLock(ctx *pulumi.Context, args *LookupSfsProjectLockArgs, opts ...pulumi.InvokeOption) (*LookupSfsProjectLockResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupSfsProjectLockResult + err := ctx.Invoke("stackit:index/getSfsProjectLock:getSfsProjectLock", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getSfsProjectLock. +type LookupSfsProjectLockArgs struct { + // STACKIT Project ID to which the project lock is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// A collection of values returned by getSfsProjectLock. +type LookupSfsProjectLockResult struct { + // Terraform's internal resource identifier. It is structured as "`projectId`,`region`". + Id string `pulumi:"id"` + // ID of the lock. + LockId string `pulumi:"lockId"` + // STACKIT Project ID to which the project lock is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region string `pulumi:"region"` +} + +func LookupSfsProjectLockOutput(ctx *pulumi.Context, args LookupSfsProjectLockOutputArgs, opts ...pulumi.InvokeOption) LookupSfsProjectLockResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupSfsProjectLockResultOutput, error) { + args := v.(LookupSfsProjectLockArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getSfsProjectLock:getSfsProjectLock", args, LookupSfsProjectLockResultOutput{}, options).(LookupSfsProjectLockResultOutput), nil + }).(LookupSfsProjectLockResultOutput) +} + +// A collection of arguments for invoking getSfsProjectLock. +type LookupSfsProjectLockOutputArgs struct { + // STACKIT Project ID to which the project lock is associated. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (LookupSfsProjectLockOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSfsProjectLockArgs)(nil)).Elem() +} + +// A collection of values returned by getSfsProjectLock. +type LookupSfsProjectLockResultOutput struct{ *pulumi.OutputState } + +func (LookupSfsProjectLockResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSfsProjectLockResult)(nil)).Elem() +} + +func (o LookupSfsProjectLockResultOutput) ToLookupSfsProjectLockResultOutput() LookupSfsProjectLockResultOutput { + return o +} + +func (o LookupSfsProjectLockResultOutput) ToLookupSfsProjectLockResultOutputWithContext(ctx context.Context) LookupSfsProjectLockResultOutput { + return o +} + +// Terraform's internal resource identifier. It is structured as "`projectId`,`region`". +func (o LookupSfsProjectLockResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupSfsProjectLockResult) string { return v.Id }).(pulumi.StringOutput) +} + +// ID of the lock. +func (o LookupSfsProjectLockResultOutput) LockId() pulumi.StringOutput { + return o.ApplyT(func(v LookupSfsProjectLockResult) string { return v.LockId }).(pulumi.StringOutput) +} + +// STACKIT Project ID to which the project lock is associated. +func (o LookupSfsProjectLockResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupSfsProjectLockResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o LookupSfsProjectLockResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupSfsProjectLockResult) string { return v.Region }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupSfsProjectLockResultOutput{}) +} diff --git a/sdk/go/stackit/init.go b/sdk/go/stackit/init.go index 8bffcd3..100978b 100644 --- a/sdk/go/stackit/init.go +++ b/sdk/go/stackit/init.go @@ -27,8 +27,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AlbCertificate{} case "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": r = &ApplicationLoadBalancer{} + case "stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole": + r = &AuthorizationFolderCustomRole{} case "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": r = &AuthorizationFolderRoleAssignment{} + case "stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole": + r = &AuthorizationOrganizationCustomRole{} case "stackit:index/authorizationOrganizationRoleAssignment:AuthorizationOrganizationRoleAssignment": r = &AuthorizationOrganizationRoleAssignment{} case "stackit:index/authorizationProjectCustomRole:AuthorizationProjectCustomRole": @@ -149,6 +153,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ScfOrganizationManager{} case "stackit:index/secretsmanagerInstance:SecretsmanagerInstance": r = &SecretsmanagerInstance{} + case "stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1": + r = &SecretsmanagerInstanceRoleBindingV1{} + case "stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1": + r = &SecretsmanagerSecretGroupRoleBindingV1{} case "stackit:index/secretsmanagerUser:SecretsmanagerUser": r = &SecretsmanagerUser{} case "stackit:index/securityGroup:SecurityGroup": @@ -177,6 +185,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ServiceAccountKey{} case "stackit:index/sfsExportPolicy:SfsExportPolicy": r = &SfsExportPolicy{} + case "stackit:index/sfsProjectLock:SfsProjectLock": + r = &SfsProjectLock{} case "stackit:index/sfsResourcePool:SfsResourcePool": r = &SfsResourcePool{} case "stackit:index/sfsShare:SfsShare": @@ -237,11 +247,21 @@ func init() { "index/applicationLoadBalancer", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/authorizationFolderCustomRole", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/authorizationFolderRoleAssignment", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/authorizationOrganizationCustomRole", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/authorizationOrganizationRoleAssignment", @@ -542,6 +562,16 @@ func init() { "index/secretsmanagerInstance", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/secretsmanagerInstanceRoleBindingV1", + &module{version}, + ) + pulumi.RegisterResourceModule( + "stackit", + "index/secretsmanagerSecretGroupRoleBindingV1", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/secretsmanagerUser", @@ -612,6 +642,11 @@ func init() { "index/sfsExportPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/sfsProjectLock", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/sfsResourcePool", diff --git a/sdk/go/stackit/objectstorageCredentialsGroup.go b/sdk/go/stackit/objectstorageCredentialsGroup.go index fa774f2..6883910 100644 --- a/sdk/go/stackit/objectstorageCredentialsGroup.go +++ b/sdk/go/stackit/objectstorageCredentialsGroup.go @@ -27,7 +27,7 @@ type ObjectstorageCredentialsGroup struct { // The resource region. If not defined, the provider region is used. Region pulumi.StringOutput `pulumi:"region"` // Credentials group uniform resource name (URN) - Urn pulumi.StringOutput `pulumi:"urn"` + StackitUrn pulumi.StringOutput `pulumi:"stackitUrn"` } // NewObjectstorageCredentialsGroup registers a new resource with the given unique name, arguments, and options. @@ -72,7 +72,7 @@ type objectstorageCredentialsGroupState struct { // The resource region. If not defined, the provider region is used. Region *string `pulumi:"region"` // Credentials group uniform resource name (URN) - Urn *string `pulumi:"urn"` + StackitUrn *string `pulumi:"stackitUrn"` } type ObjectstorageCredentialsGroupState struct { @@ -85,7 +85,7 @@ type ObjectstorageCredentialsGroupState struct { // The resource region. If not defined, the provider region is used. Region pulumi.StringPtrInput // Credentials group uniform resource name (URN) - Urn pulumi.StringPtrInput + StackitUrn pulumi.StringPtrInput } func (ObjectstorageCredentialsGroupState) ElementType() reflect.Type { @@ -219,8 +219,8 @@ func (o ObjectstorageCredentialsGroupOutput) Region() pulumi.StringOutput { } // Credentials group uniform resource name (URN) -func (o ObjectstorageCredentialsGroupOutput) Urn() pulumi.StringOutput { - return o.ApplyT(func(v *ObjectstorageCredentialsGroup) pulumi.StringOutput { return v.Urn }).(pulumi.StringOutput) +func (o ObjectstorageCredentialsGroupOutput) StackitUrn() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectstorageCredentialsGroup) pulumi.StringOutput { return v.StackitUrn }).(pulumi.StringOutput) } type ObjectstorageCredentialsGroupArrayOutput struct{ *pulumi.OutputState } diff --git a/sdk/go/stackit/pulumiTypes.go b/sdk/go/stackit/pulumiTypes.go index 395463c..b9ebc5f 100644 --- a/sdk/go/stackit/pulumiTypes.go +++ b/sdk/go/stackit/pulumiTypes.go @@ -3585,6 +3585,8 @@ type CdnDistributionConfig struct { BlockedCountries []string `pulumi:"blockedCountries"` // Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. Optimizer *CdnDistributionConfigOptimizer `pulumi:"optimizer"` + // A wrapper for a list of redirect rules that allows for redirect settings on a distribution + Redirects *CdnDistributionConfigRedirects `pulumi:"redirects"` // The configured regions where content will be hosted Regions []string `pulumi:"regions"` } @@ -3607,6 +3609,8 @@ type CdnDistributionConfigArgs struct { BlockedCountries pulumi.StringArrayInput `pulumi:"blockedCountries"` // Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. Optimizer CdnDistributionConfigOptimizerPtrInput `pulumi:"optimizer"` + // A wrapper for a list of redirect rules that allows for redirect settings on a distribution + Redirects CdnDistributionConfigRedirectsPtrInput `pulumi:"redirects"` // The configured regions where content will be hosted Regions pulumi.StringArrayInput `pulumi:"regions"` } @@ -3703,6 +3707,11 @@ func (o CdnDistributionConfigOutput) Optimizer() CdnDistributionConfigOptimizerP return o.ApplyT(func(v CdnDistributionConfig) *CdnDistributionConfigOptimizer { return v.Optimizer }).(CdnDistributionConfigOptimizerPtrOutput) } +// A wrapper for a list of redirect rules that allows for redirect settings on a distribution +func (o CdnDistributionConfigOutput) Redirects() CdnDistributionConfigRedirectsPtrOutput { + return o.ApplyT(func(v CdnDistributionConfig) *CdnDistributionConfigRedirects { return v.Redirects }).(CdnDistributionConfigRedirectsPtrOutput) +} + // The configured regions where content will be hosted func (o CdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { return o.ApplyT(func(v CdnDistributionConfig) []string { return v.Regions }).(pulumi.StringArrayOutput) @@ -3762,6 +3771,16 @@ func (o CdnDistributionConfigPtrOutput) Optimizer() CdnDistributionConfigOptimiz }).(CdnDistributionConfigOptimizerPtrOutput) } +// A wrapper for a list of redirect rules that allows for redirect settings on a distribution +func (o CdnDistributionConfigPtrOutput) Redirects() CdnDistributionConfigRedirectsPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfig) *CdnDistributionConfigRedirects { + if v == nil { + return nil + } + return v.Redirects + }).(CdnDistributionConfigRedirectsPtrOutput) +} + // The configured regions where content will be hosted func (o CdnDistributionConfigPtrOutput) Regions() pulumi.StringArrayOutput { return o.ApplyT(func(v *CdnDistributionConfig) []string { @@ -4312,6 +4331,393 @@ func (o CdnDistributionConfigOptimizerPtrOutput) Enabled() pulumi.BoolPtrOutput }).(pulumi.BoolPtrOutput) } +type CdnDistributionConfigRedirects struct { + // A list of redirect rules. The order of rules matters for evaluation + Rules []CdnDistributionConfigRedirectsRule `pulumi:"rules"` +} + +// CdnDistributionConfigRedirectsInput is an input type that accepts CdnDistributionConfigRedirectsArgs and CdnDistributionConfigRedirectsOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsInput` via: +// +// CdnDistributionConfigRedirectsArgs{...} +type CdnDistributionConfigRedirectsInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsOutput() CdnDistributionConfigRedirectsOutput + ToCdnDistributionConfigRedirectsOutputWithContext(context.Context) CdnDistributionConfigRedirectsOutput +} + +type CdnDistributionConfigRedirectsArgs struct { + // A list of redirect rules. The order of rules matters for evaluation + Rules CdnDistributionConfigRedirectsRuleArrayInput `pulumi:"rules"` +} + +func (CdnDistributionConfigRedirectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirects)(nil)).Elem() +} + +func (i CdnDistributionConfigRedirectsArgs) ToCdnDistributionConfigRedirectsOutput() CdnDistributionConfigRedirectsOutput { + return i.ToCdnDistributionConfigRedirectsOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsArgs) ToCdnDistributionConfigRedirectsOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsOutput) +} + +func (i CdnDistributionConfigRedirectsArgs) ToCdnDistributionConfigRedirectsPtrOutput() CdnDistributionConfigRedirectsPtrOutput { + return i.ToCdnDistributionConfigRedirectsPtrOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsArgs) ToCdnDistributionConfigRedirectsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsOutput).ToCdnDistributionConfigRedirectsPtrOutputWithContext(ctx) +} + +// CdnDistributionConfigRedirectsPtrInput is an input type that accepts CdnDistributionConfigRedirectsArgs, CdnDistributionConfigRedirectsPtr and CdnDistributionConfigRedirectsPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsPtrInput` via: +// +// CdnDistributionConfigRedirectsArgs{...} +// +// or: +// +// nil +type CdnDistributionConfigRedirectsPtrInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsPtrOutput() CdnDistributionConfigRedirectsPtrOutput + ToCdnDistributionConfigRedirectsPtrOutputWithContext(context.Context) CdnDistributionConfigRedirectsPtrOutput +} + +type cdnDistributionConfigRedirectsPtrType CdnDistributionConfigRedirectsArgs + +func CdnDistributionConfigRedirectsPtr(v *CdnDistributionConfigRedirectsArgs) CdnDistributionConfigRedirectsPtrInput { + return (*cdnDistributionConfigRedirectsPtrType)(v) +} + +func (*cdnDistributionConfigRedirectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigRedirects)(nil)).Elem() +} + +func (i *cdnDistributionConfigRedirectsPtrType) ToCdnDistributionConfigRedirectsPtrOutput() CdnDistributionConfigRedirectsPtrOutput { + return i.ToCdnDistributionConfigRedirectsPtrOutputWithContext(context.Background()) +} + +func (i *cdnDistributionConfigRedirectsPtrType) ToCdnDistributionConfigRedirectsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsPtrOutput) +} + +type CdnDistributionConfigRedirectsOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirects)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsOutput) ToCdnDistributionConfigRedirectsOutput() CdnDistributionConfigRedirectsOutput { + return o +} + +func (o CdnDistributionConfigRedirectsOutput) ToCdnDistributionConfigRedirectsOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsOutput { + return o +} + +func (o CdnDistributionConfigRedirectsOutput) ToCdnDistributionConfigRedirectsPtrOutput() CdnDistributionConfigRedirectsPtrOutput { + return o.ToCdnDistributionConfigRedirectsPtrOutputWithContext(context.Background()) +} + +func (o CdnDistributionConfigRedirectsOutput) ToCdnDistributionConfigRedirectsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigRedirects) *CdnDistributionConfigRedirects { + return &v + }).(CdnDistributionConfigRedirectsPtrOutput) +} + +// A list of redirect rules. The order of rules matters for evaluation +func (o CdnDistributionConfigRedirectsOutput) Rules() CdnDistributionConfigRedirectsRuleArrayOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirects) []CdnDistributionConfigRedirectsRule { return v.Rules }).(CdnDistributionConfigRedirectsRuleArrayOutput) +} + +type CdnDistributionConfigRedirectsPtrOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigRedirects)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsPtrOutput) ToCdnDistributionConfigRedirectsPtrOutput() CdnDistributionConfigRedirectsPtrOutput { + return o +} + +func (o CdnDistributionConfigRedirectsPtrOutput) ToCdnDistributionConfigRedirectsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsPtrOutput { + return o +} + +func (o CdnDistributionConfigRedirectsPtrOutput) Elem() CdnDistributionConfigRedirectsOutput { + return o.ApplyT(func(v *CdnDistributionConfigRedirects) CdnDistributionConfigRedirects { + if v != nil { + return *v + } + var ret CdnDistributionConfigRedirects + return ret + }).(CdnDistributionConfigRedirectsOutput) +} + +// A list of redirect rules. The order of rules matters for evaluation +func (o CdnDistributionConfigRedirectsPtrOutput) Rules() CdnDistributionConfigRedirectsRuleArrayOutput { + return o.ApplyT(func(v *CdnDistributionConfigRedirects) []CdnDistributionConfigRedirectsRule { + if v == nil { + return nil + } + return v.Rules + }).(CdnDistributionConfigRedirectsRuleArrayOutput) +} + +type CdnDistributionConfigRedirectsRule struct { + // An optional description for the redirect rule + Description *string `pulumi:"description"` + // A toggle to enable or disable the redirect rule. Default to true + Enabled *bool `pulumi:"enabled"` + // A list of matchers that define when this rule should apply. At least one matcher is required + Matchers []CdnDistributionConfigRedirectsRuleMatcher `pulumi:"matchers"` + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + RuleMatchCondition *string `pulumi:"ruleMatchCondition"` + // The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + StatusCode int `pulumi:"statusCode"` + // The target URL to redirect to. Must be a valid URI + TargetUrl string `pulumi:"targetUrl"` +} + +// CdnDistributionConfigRedirectsRuleInput is an input type that accepts CdnDistributionConfigRedirectsRuleArgs and CdnDistributionConfigRedirectsRuleOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsRuleInput` via: +// +// CdnDistributionConfigRedirectsRuleArgs{...} +type CdnDistributionConfigRedirectsRuleInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsRuleOutput() CdnDistributionConfigRedirectsRuleOutput + ToCdnDistributionConfigRedirectsRuleOutputWithContext(context.Context) CdnDistributionConfigRedirectsRuleOutput +} + +type CdnDistributionConfigRedirectsRuleArgs struct { + // An optional description for the redirect rule + Description pulumi.StringPtrInput `pulumi:"description"` + // A toggle to enable or disable the redirect rule. Default to true + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // A list of matchers that define when this rule should apply. At least one matcher is required + Matchers CdnDistributionConfigRedirectsRuleMatcherArrayInput `pulumi:"matchers"` + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + RuleMatchCondition pulumi.StringPtrInput `pulumi:"ruleMatchCondition"` + // The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + StatusCode pulumi.IntInput `pulumi:"statusCode"` + // The target URL to redirect to. Must be a valid URI + TargetUrl pulumi.StringInput `pulumi:"targetUrl"` +} + +func (CdnDistributionConfigRedirectsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (i CdnDistributionConfigRedirectsRuleArgs) ToCdnDistributionConfigRedirectsRuleOutput() CdnDistributionConfigRedirectsRuleOutput { + return i.ToCdnDistributionConfigRedirectsRuleOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsRuleArgs) ToCdnDistributionConfigRedirectsRuleOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsRuleOutput) +} + +// CdnDistributionConfigRedirectsRuleArrayInput is an input type that accepts CdnDistributionConfigRedirectsRuleArray and CdnDistributionConfigRedirectsRuleArrayOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsRuleArrayInput` via: +// +// CdnDistributionConfigRedirectsRuleArray{ CdnDistributionConfigRedirectsRuleArgs{...} } +type CdnDistributionConfigRedirectsRuleArrayInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsRuleArrayOutput() CdnDistributionConfigRedirectsRuleArrayOutput + ToCdnDistributionConfigRedirectsRuleArrayOutputWithContext(context.Context) CdnDistributionConfigRedirectsRuleArrayOutput +} + +type CdnDistributionConfigRedirectsRuleArray []CdnDistributionConfigRedirectsRuleInput + +func (CdnDistributionConfigRedirectsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (i CdnDistributionConfigRedirectsRuleArray) ToCdnDistributionConfigRedirectsRuleArrayOutput() CdnDistributionConfigRedirectsRuleArrayOutput { + return i.ToCdnDistributionConfigRedirectsRuleArrayOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsRuleArray) ToCdnDistributionConfigRedirectsRuleArrayOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsRuleArrayOutput) +} + +type CdnDistributionConfigRedirectsRuleOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsRuleOutput) ToCdnDistributionConfigRedirectsRuleOutput() CdnDistributionConfigRedirectsRuleOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleOutput) ToCdnDistributionConfigRedirectsRuleOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleOutput { + return o +} + +// An optional description for the redirect rule +func (o CdnDistributionConfigRedirectsRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A toggle to enable or disable the redirect rule. Default to true +func (o CdnDistributionConfigRedirectsRuleOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// A list of matchers that define when this rule should apply. At least one matcher is required +func (o CdnDistributionConfigRedirectsRuleOutput) Matchers() CdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) []CdnDistributionConfigRedirectsRuleMatcher { + return v.Matchers + }).(CdnDistributionConfigRedirectsRuleMatcherArrayOutput) +} + +// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. +func (o CdnDistributionConfigRedirectsRuleOutput) RuleMatchCondition() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) *string { return v.RuleMatchCondition }).(pulumi.StringPtrOutput) +} + +// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. +func (o CdnDistributionConfigRedirectsRuleOutput) StatusCode() pulumi.IntOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) int { return v.StatusCode }).(pulumi.IntOutput) +} + +// The target URL to redirect to. Must be a valid URI +func (o CdnDistributionConfigRedirectsRuleOutput) TargetUrl() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRule) string { return v.TargetUrl }).(pulumi.StringOutput) +} + +type CdnDistributionConfigRedirectsRuleArrayOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsRuleArrayOutput) ToCdnDistributionConfigRedirectsRuleArrayOutput() CdnDistributionConfigRedirectsRuleArrayOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleArrayOutput) ToCdnDistributionConfigRedirectsRuleArrayOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleArrayOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleArrayOutput) Index(i pulumi.IntInput) CdnDistributionConfigRedirectsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CdnDistributionConfigRedirectsRule { + return vs[0].([]CdnDistributionConfigRedirectsRule)[vs[1].(int)] + }).(CdnDistributionConfigRedirectsRuleOutput) +} + +type CdnDistributionConfigRedirectsRuleMatcher struct { + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + ValueMatchCondition *string `pulumi:"valueMatchCondition"` + // A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + Values []string `pulumi:"values"` +} + +// CdnDistributionConfigRedirectsRuleMatcherInput is an input type that accepts CdnDistributionConfigRedirectsRuleMatcherArgs and CdnDistributionConfigRedirectsRuleMatcherOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsRuleMatcherInput` via: +// +// CdnDistributionConfigRedirectsRuleMatcherArgs{...} +type CdnDistributionConfigRedirectsRuleMatcherInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsRuleMatcherOutput() CdnDistributionConfigRedirectsRuleMatcherOutput + ToCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(context.Context) CdnDistributionConfigRedirectsRuleMatcherOutput +} + +type CdnDistributionConfigRedirectsRuleMatcherArgs struct { + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + ValueMatchCondition pulumi.StringPtrInput `pulumi:"valueMatchCondition"` + // A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (CdnDistributionConfigRedirectsRuleMatcherArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (i CdnDistributionConfigRedirectsRuleMatcherArgs) ToCdnDistributionConfigRedirectsRuleMatcherOutput() CdnDistributionConfigRedirectsRuleMatcherOutput { + return i.ToCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsRuleMatcherArgs) ToCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleMatcherOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsRuleMatcherOutput) +} + +// CdnDistributionConfigRedirectsRuleMatcherArrayInput is an input type that accepts CdnDistributionConfigRedirectsRuleMatcherArray and CdnDistributionConfigRedirectsRuleMatcherArrayOutput values. +// You can construct a concrete instance of `CdnDistributionConfigRedirectsRuleMatcherArrayInput` via: +// +// CdnDistributionConfigRedirectsRuleMatcherArray{ CdnDistributionConfigRedirectsRuleMatcherArgs{...} } +type CdnDistributionConfigRedirectsRuleMatcherArrayInput interface { + pulumi.Input + + ToCdnDistributionConfigRedirectsRuleMatcherArrayOutput() CdnDistributionConfigRedirectsRuleMatcherArrayOutput + ToCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(context.Context) CdnDistributionConfigRedirectsRuleMatcherArrayOutput +} + +type CdnDistributionConfigRedirectsRuleMatcherArray []CdnDistributionConfigRedirectsRuleMatcherInput + +func (CdnDistributionConfigRedirectsRuleMatcherArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (i CdnDistributionConfigRedirectsRuleMatcherArray) ToCdnDistributionConfigRedirectsRuleMatcherArrayOutput() CdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return i.ToCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigRedirectsRuleMatcherArray) ToCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigRedirectsRuleMatcherArrayOutput) +} + +type CdnDistributionConfigRedirectsRuleMatcherOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsRuleMatcherOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsRuleMatcherOutput) ToCdnDistributionConfigRedirectsRuleMatcherOutput() CdnDistributionConfigRedirectsRuleMatcherOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleMatcherOutput) ToCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleMatcherOutput { + return o +} + +// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. +func (o CdnDistributionConfigRedirectsRuleMatcherOutput) ValueMatchCondition() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRuleMatcher) *string { return v.ValueMatchCondition }).(pulumi.StringPtrOutput) +} + +// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" +func (o CdnDistributionConfigRedirectsRuleMatcherOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v CdnDistributionConfigRedirectsRuleMatcher) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type CdnDistributionConfigRedirectsRuleMatcherArrayOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigRedirectsRuleMatcherArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (o CdnDistributionConfigRedirectsRuleMatcherArrayOutput) ToCdnDistributionConfigRedirectsRuleMatcherArrayOutput() CdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleMatcherArrayOutput) ToCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(ctx context.Context) CdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o +} + +func (o CdnDistributionConfigRedirectsRuleMatcherArrayOutput) Index(i pulumi.IntInput) CdnDistributionConfigRedirectsRuleMatcherOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CdnDistributionConfigRedirectsRuleMatcher { + return vs[0].([]CdnDistributionConfigRedirectsRuleMatcher)[vs[1].(int)] + }).(CdnDistributionConfigRedirectsRuleMatcherOutput) +} + type CdnDistributionDomain struct { // List of domain errors Errors []string `pulumi:"errors"` @@ -15450,9 +15856,9 @@ type SkeClusterMaintenance struct { // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). EnableMachineImageVersionUpdates *bool `pulumi:"enableMachineImageVersionUpdates"` // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - End string `pulumi:"end"` + End *string `pulumi:"end"` // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - Start string `pulumi:"start"` + Start *string `pulumi:"start"` } // SkeClusterMaintenanceInput is an input type that accepts SkeClusterMaintenanceArgs and SkeClusterMaintenanceOutput values. @@ -15472,9 +15878,9 @@ type SkeClusterMaintenanceArgs struct { // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). EnableMachineImageVersionUpdates pulumi.BoolPtrInput `pulumi:"enableMachineImageVersionUpdates"` // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - End pulumi.StringInput `pulumi:"end"` + End pulumi.StringPtrInput `pulumi:"end"` // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - Start pulumi.StringInput `pulumi:"start"` + Start pulumi.StringPtrInput `pulumi:"start"` } func (SkeClusterMaintenanceArgs) ElementType() reflect.Type { @@ -15565,13 +15971,13 @@ func (o SkeClusterMaintenanceOutput) EnableMachineImageVersionUpdates() pulumi.B } // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenanceOutput) End() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterMaintenance) string { return v.End }).(pulumi.StringOutput) +func (o SkeClusterMaintenanceOutput) End() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterMaintenance) *string { return v.End }).(pulumi.StringPtrOutput) } // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenanceOutput) Start() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterMaintenance) string { return v.Start }).(pulumi.StringOutput) +func (o SkeClusterMaintenanceOutput) Start() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterMaintenance) *string { return v.Start }).(pulumi.StringPtrOutput) } type SkeClusterMaintenancePtrOutput struct{ *pulumi.OutputState } @@ -15624,7 +16030,7 @@ func (o SkeClusterMaintenancePtrOutput) End() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.End + return v.End }).(pulumi.StringPtrOutput) } @@ -15634,7 +16040,7 @@ func (o SkeClusterMaintenancePtrOutput) Start() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Start + return v.Start }).(pulumi.StringPtrOutput) } @@ -19346,6 +19752,8 @@ type GetCdnDistributionConfig struct { BlockedCountries []string `pulumi:"blockedCountries"` // Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. Optimizer GetCdnDistributionConfigOptimizer `pulumi:"optimizer"` + // A wrapper for a list of redirect rules that allows for redirect settings on a distribution + Redirects GetCdnDistributionConfigRedirects `pulumi:"redirects"` // The configured regions where content will be hosted Regions []string `pulumi:"regions"` } @@ -19368,6 +19776,8 @@ type GetCdnDistributionConfigArgs struct { BlockedCountries pulumi.StringArrayInput `pulumi:"blockedCountries"` // Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. Optimizer GetCdnDistributionConfigOptimizerInput `pulumi:"optimizer"` + // A wrapper for a list of redirect rules that allows for redirect settings on a distribution + Redirects GetCdnDistributionConfigRedirectsInput `pulumi:"redirects"` // The configured regions where content will be hosted Regions pulumi.StringArrayInput `pulumi:"regions"` } @@ -19413,6 +19823,11 @@ func (o GetCdnDistributionConfigOutput) Optimizer() GetCdnDistributionConfigOpti return o.ApplyT(func(v GetCdnDistributionConfig) GetCdnDistributionConfigOptimizer { return v.Optimizer }).(GetCdnDistributionConfigOptimizerOutput) } +// A wrapper for a list of redirect rules that allows for redirect settings on a distribution +func (o GetCdnDistributionConfigOutput) Redirects() GetCdnDistributionConfigRedirectsOutput { + return o.ApplyT(func(v GetCdnDistributionConfig) GetCdnDistributionConfigRedirects { return v.Redirects }).(GetCdnDistributionConfigRedirectsOutput) +} + // The configured regions where content will be hosted func (o GetCdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { return o.ApplyT(func(v GetCdnDistributionConfig) []string { return v.Regions }).(pulumi.StringArrayOutput) @@ -19564,6 +19979,308 @@ func (o GetCdnDistributionConfigOptimizerOutput) Enabled() pulumi.BoolOutput { return o.ApplyT(func(v GetCdnDistributionConfigOptimizer) bool { return v.Enabled }).(pulumi.BoolOutput) } +type GetCdnDistributionConfigRedirects struct { + // A list of redirect rules. The order of rules matters for evaluation + Rules []GetCdnDistributionConfigRedirectsRule `pulumi:"rules"` +} + +// GetCdnDistributionConfigRedirectsInput is an input type that accepts GetCdnDistributionConfigRedirectsArgs and GetCdnDistributionConfigRedirectsOutput values. +// You can construct a concrete instance of `GetCdnDistributionConfigRedirectsInput` via: +// +// GetCdnDistributionConfigRedirectsArgs{...} +type GetCdnDistributionConfigRedirectsInput interface { + pulumi.Input + + ToGetCdnDistributionConfigRedirectsOutput() GetCdnDistributionConfigRedirectsOutput + ToGetCdnDistributionConfigRedirectsOutputWithContext(context.Context) GetCdnDistributionConfigRedirectsOutput +} + +type GetCdnDistributionConfigRedirectsArgs struct { + // A list of redirect rules. The order of rules matters for evaluation + Rules GetCdnDistributionConfigRedirectsRuleArrayInput `pulumi:"rules"` +} + +func (GetCdnDistributionConfigRedirectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirects)(nil)).Elem() +} + +func (i GetCdnDistributionConfigRedirectsArgs) ToGetCdnDistributionConfigRedirectsOutput() GetCdnDistributionConfigRedirectsOutput { + return i.ToGetCdnDistributionConfigRedirectsOutputWithContext(context.Background()) +} + +func (i GetCdnDistributionConfigRedirectsArgs) ToGetCdnDistributionConfigRedirectsOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCdnDistributionConfigRedirectsOutput) +} + +type GetCdnDistributionConfigRedirectsOutput struct{ *pulumi.OutputState } + +func (GetCdnDistributionConfigRedirectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirects)(nil)).Elem() +} + +func (o GetCdnDistributionConfigRedirectsOutput) ToGetCdnDistributionConfigRedirectsOutput() GetCdnDistributionConfigRedirectsOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsOutput) ToGetCdnDistributionConfigRedirectsOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsOutput { + return o +} + +// A list of redirect rules. The order of rules matters for evaluation +func (o GetCdnDistributionConfigRedirectsOutput) Rules() GetCdnDistributionConfigRedirectsRuleArrayOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirects) []GetCdnDistributionConfigRedirectsRule { return v.Rules }).(GetCdnDistributionConfigRedirectsRuleArrayOutput) +} + +type GetCdnDistributionConfigRedirectsRule struct { + // An optional description for the redirect rule + Description string `pulumi:"description"` + // A toggle to enable or disable the redirect rule. Default to true + Enabled bool `pulumi:"enabled"` + // A list of matchers that define when this rule should apply. At least one matcher is required + Matchers []GetCdnDistributionConfigRedirectsRuleMatcher `pulumi:"matchers"` + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + RuleMatchCondition string `pulumi:"ruleMatchCondition"` + // The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + StatusCode int `pulumi:"statusCode"` + // The target URL to redirect to. Must be a valid URI + TargetUrl string `pulumi:"targetUrl"` +} + +// GetCdnDistributionConfigRedirectsRuleInput is an input type that accepts GetCdnDistributionConfigRedirectsRuleArgs and GetCdnDistributionConfigRedirectsRuleOutput values. +// You can construct a concrete instance of `GetCdnDistributionConfigRedirectsRuleInput` via: +// +// GetCdnDistributionConfigRedirectsRuleArgs{...} +type GetCdnDistributionConfigRedirectsRuleInput interface { + pulumi.Input + + ToGetCdnDistributionConfigRedirectsRuleOutput() GetCdnDistributionConfigRedirectsRuleOutput + ToGetCdnDistributionConfigRedirectsRuleOutputWithContext(context.Context) GetCdnDistributionConfigRedirectsRuleOutput +} + +type GetCdnDistributionConfigRedirectsRuleArgs struct { + // An optional description for the redirect rule + Description pulumi.StringInput `pulumi:"description"` + // A toggle to enable or disable the redirect rule. Default to true + Enabled pulumi.BoolInput `pulumi:"enabled"` + // A list of matchers that define when this rule should apply. At least one matcher is required + Matchers GetCdnDistributionConfigRedirectsRuleMatcherArrayInput `pulumi:"matchers"` + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + RuleMatchCondition pulumi.StringInput `pulumi:"ruleMatchCondition"` + // The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + StatusCode pulumi.IntInput `pulumi:"statusCode"` + // The target URL to redirect to. Must be a valid URI + TargetUrl pulumi.StringInput `pulumi:"targetUrl"` +} + +func (GetCdnDistributionConfigRedirectsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (i GetCdnDistributionConfigRedirectsRuleArgs) ToGetCdnDistributionConfigRedirectsRuleOutput() GetCdnDistributionConfigRedirectsRuleOutput { + return i.ToGetCdnDistributionConfigRedirectsRuleOutputWithContext(context.Background()) +} + +func (i GetCdnDistributionConfigRedirectsRuleArgs) ToGetCdnDistributionConfigRedirectsRuleOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCdnDistributionConfigRedirectsRuleOutput) +} + +// GetCdnDistributionConfigRedirectsRuleArrayInput is an input type that accepts GetCdnDistributionConfigRedirectsRuleArray and GetCdnDistributionConfigRedirectsRuleArrayOutput values. +// You can construct a concrete instance of `GetCdnDistributionConfigRedirectsRuleArrayInput` via: +// +// GetCdnDistributionConfigRedirectsRuleArray{ GetCdnDistributionConfigRedirectsRuleArgs{...} } +type GetCdnDistributionConfigRedirectsRuleArrayInput interface { + pulumi.Input + + ToGetCdnDistributionConfigRedirectsRuleArrayOutput() GetCdnDistributionConfigRedirectsRuleArrayOutput + ToGetCdnDistributionConfigRedirectsRuleArrayOutputWithContext(context.Context) GetCdnDistributionConfigRedirectsRuleArrayOutput +} + +type GetCdnDistributionConfigRedirectsRuleArray []GetCdnDistributionConfigRedirectsRuleInput + +func (GetCdnDistributionConfigRedirectsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (i GetCdnDistributionConfigRedirectsRuleArray) ToGetCdnDistributionConfigRedirectsRuleArrayOutput() GetCdnDistributionConfigRedirectsRuleArrayOutput { + return i.ToGetCdnDistributionConfigRedirectsRuleArrayOutputWithContext(context.Background()) +} + +func (i GetCdnDistributionConfigRedirectsRuleArray) ToGetCdnDistributionConfigRedirectsRuleArrayOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCdnDistributionConfigRedirectsRuleArrayOutput) +} + +type GetCdnDistributionConfigRedirectsRuleOutput struct{ *pulumi.OutputState } + +func (GetCdnDistributionConfigRedirectsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (o GetCdnDistributionConfigRedirectsRuleOutput) ToGetCdnDistributionConfigRedirectsRuleOutput() GetCdnDistributionConfigRedirectsRuleOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleOutput) ToGetCdnDistributionConfigRedirectsRuleOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleOutput { + return o +} + +// An optional description for the redirect rule +func (o GetCdnDistributionConfigRedirectsRuleOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) string { return v.Description }).(pulumi.StringOutput) +} + +// A toggle to enable or disable the redirect rule. Default to true +func (o GetCdnDistributionConfigRedirectsRuleOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// A list of matchers that define when this rule should apply. At least one matcher is required +func (o GetCdnDistributionConfigRedirectsRuleOutput) Matchers() GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) []GetCdnDistributionConfigRedirectsRuleMatcher { + return v.Matchers + }).(GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) +} + +// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. +func (o GetCdnDistributionConfigRedirectsRuleOutput) RuleMatchCondition() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) string { return v.RuleMatchCondition }).(pulumi.StringOutput) +} + +// The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. +func (o GetCdnDistributionConfigRedirectsRuleOutput) StatusCode() pulumi.IntOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) int { return v.StatusCode }).(pulumi.IntOutput) +} + +// The target URL to redirect to. Must be a valid URI +func (o GetCdnDistributionConfigRedirectsRuleOutput) TargetUrl() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRule) string { return v.TargetUrl }).(pulumi.StringOutput) +} + +type GetCdnDistributionConfigRedirectsRuleArrayOutput struct{ *pulumi.OutputState } + +func (GetCdnDistributionConfigRedirectsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCdnDistributionConfigRedirectsRule)(nil)).Elem() +} + +func (o GetCdnDistributionConfigRedirectsRuleArrayOutput) ToGetCdnDistributionConfigRedirectsRuleArrayOutput() GetCdnDistributionConfigRedirectsRuleArrayOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleArrayOutput) ToGetCdnDistributionConfigRedirectsRuleArrayOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleArrayOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleArrayOutput) Index(i pulumi.IntInput) GetCdnDistributionConfigRedirectsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetCdnDistributionConfigRedirectsRule { + return vs[0].([]GetCdnDistributionConfigRedirectsRule)[vs[1].(int)] + }).(GetCdnDistributionConfigRedirectsRuleOutput) +} + +type GetCdnDistributionConfigRedirectsRuleMatcher struct { + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + ValueMatchCondition string `pulumi:"valueMatchCondition"` + // A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + Values []string `pulumi:"values"` +} + +// GetCdnDistributionConfigRedirectsRuleMatcherInput is an input type that accepts GetCdnDistributionConfigRedirectsRuleMatcherArgs and GetCdnDistributionConfigRedirectsRuleMatcherOutput values. +// You can construct a concrete instance of `GetCdnDistributionConfigRedirectsRuleMatcherInput` via: +// +// GetCdnDistributionConfigRedirectsRuleMatcherArgs{...} +type GetCdnDistributionConfigRedirectsRuleMatcherInput interface { + pulumi.Input + + ToGetCdnDistributionConfigRedirectsRuleMatcherOutput() GetCdnDistributionConfigRedirectsRuleMatcherOutput + ToGetCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(context.Context) GetCdnDistributionConfigRedirectsRuleMatcherOutput +} + +type GetCdnDistributionConfigRedirectsRuleMatcherArgs struct { + // Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + ValueMatchCondition pulumi.StringInput `pulumi:"valueMatchCondition"` + // A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (GetCdnDistributionConfigRedirectsRuleMatcherArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (i GetCdnDistributionConfigRedirectsRuleMatcherArgs) ToGetCdnDistributionConfigRedirectsRuleMatcherOutput() GetCdnDistributionConfigRedirectsRuleMatcherOutput { + return i.ToGetCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(context.Background()) +} + +func (i GetCdnDistributionConfigRedirectsRuleMatcherArgs) ToGetCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleMatcherOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCdnDistributionConfigRedirectsRuleMatcherOutput) +} + +// GetCdnDistributionConfigRedirectsRuleMatcherArrayInput is an input type that accepts GetCdnDistributionConfigRedirectsRuleMatcherArray and GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput values. +// You can construct a concrete instance of `GetCdnDistributionConfigRedirectsRuleMatcherArrayInput` via: +// +// GetCdnDistributionConfigRedirectsRuleMatcherArray{ GetCdnDistributionConfigRedirectsRuleMatcherArgs{...} } +type GetCdnDistributionConfigRedirectsRuleMatcherArrayInput interface { + pulumi.Input + + ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutput() GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput + ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(context.Context) GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput +} + +type GetCdnDistributionConfigRedirectsRuleMatcherArray []GetCdnDistributionConfigRedirectsRuleMatcherInput + +func (GetCdnDistributionConfigRedirectsRuleMatcherArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (i GetCdnDistributionConfigRedirectsRuleMatcherArray) ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutput() GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return i.ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(context.Background()) +} + +func (i GetCdnDistributionConfigRedirectsRuleMatcherArray) ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) +} + +type GetCdnDistributionConfigRedirectsRuleMatcherOutput struct{ *pulumi.OutputState } + +func (GetCdnDistributionConfigRedirectsRuleMatcherOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (o GetCdnDistributionConfigRedirectsRuleMatcherOutput) ToGetCdnDistributionConfigRedirectsRuleMatcherOutput() GetCdnDistributionConfigRedirectsRuleMatcherOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleMatcherOutput) ToGetCdnDistributionConfigRedirectsRuleMatcherOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleMatcherOutput { + return o +} + +// Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. +func (o GetCdnDistributionConfigRedirectsRuleMatcherOutput) ValueMatchCondition() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRuleMatcher) string { return v.ValueMatchCondition }).(pulumi.StringOutput) +} + +// A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" +func (o GetCdnDistributionConfigRedirectsRuleMatcherOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetCdnDistributionConfigRedirectsRuleMatcher) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput struct{ *pulumi.OutputState } + +func (GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCdnDistributionConfigRedirectsRuleMatcher)(nil)).Elem() +} + +func (o GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutput() GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) ToGetCdnDistributionConfigRedirectsRuleMatcherArrayOutputWithContext(ctx context.Context) GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput { + return o +} + +func (o GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput) Index(i pulumi.IntInput) GetCdnDistributionConfigRedirectsRuleMatcherOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetCdnDistributionConfigRedirectsRuleMatcher { + return vs[0].([]GetCdnDistributionConfigRedirectsRuleMatcher)[vs[1].(int)] + }).(GetCdnDistributionConfigRedirectsRuleMatcherOutput) +} + type GetCdnDistributionDomain struct { // List of domain errors Errors []string `pulumi:"errors"` @@ -21633,7 +22350,7 @@ type GetLoadbalancerTargetPool struct { // Target pool name. Name string `pulumi:"name"` // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. - SessionPersistence *GetLoadbalancerTargetPoolSessionPersistence `pulumi:"sessionPersistence"` + SessionPersistence GetLoadbalancerTargetPoolSessionPersistence `pulumi:"sessionPersistence"` // Identical port number where each target listens for traffic. TargetPort int `pulumi:"targetPort"` // List of all targets which will be used in the pool. Limited to 1000. @@ -21656,7 +22373,7 @@ type GetLoadbalancerTargetPoolArgs struct { // Target pool name. Name pulumi.StringInput `pulumi:"name"` // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. - SessionPersistence GetLoadbalancerTargetPoolSessionPersistencePtrInput `pulumi:"sessionPersistence"` + SessionPersistence GetLoadbalancerTargetPoolSessionPersistenceInput `pulumi:"sessionPersistence"` // Identical port number where each target listens for traffic. TargetPort pulumi.IntInput `pulumi:"targetPort"` // List of all targets which will be used in the pool. Limited to 1000. @@ -21726,10 +22443,10 @@ func (o GetLoadbalancerTargetPoolOutput) Name() pulumi.StringOutput { } // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. -func (o GetLoadbalancerTargetPoolOutput) SessionPersistence() GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ApplyT(func(v GetLoadbalancerTargetPool) *GetLoadbalancerTargetPoolSessionPersistence { +func (o GetLoadbalancerTargetPoolOutput) SessionPersistence() GetLoadbalancerTargetPoolSessionPersistenceOutput { + return o.ApplyT(func(v GetLoadbalancerTargetPool) GetLoadbalancerTargetPoolSessionPersistence { return v.SessionPersistence - }).(GetLoadbalancerTargetPoolSessionPersistencePtrOutput) + }).(GetLoadbalancerTargetPoolSessionPersistenceOutput) } // Identical port number where each target listens for traffic. @@ -21852,7 +22569,7 @@ func (o GetLoadbalancerTargetPoolActiveHealthCheckOutput) UnhealthyThreshold() p type GetLoadbalancerTargetPoolSessionPersistence struct { // If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. - UseSourceIpAddress *bool `pulumi:"useSourceIpAddress"` + UseSourceIpAddress bool `pulumi:"useSourceIpAddress"` } // GetLoadbalancerTargetPoolSessionPersistenceInput is an input type that accepts GetLoadbalancerTargetPoolSessionPersistenceArgs and GetLoadbalancerTargetPoolSessionPersistenceOutput values. @@ -21868,7 +22585,7 @@ type GetLoadbalancerTargetPoolSessionPersistenceInput interface { type GetLoadbalancerTargetPoolSessionPersistenceArgs struct { // If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. - UseSourceIpAddress pulumi.BoolPtrInput `pulumi:"useSourceIpAddress"` + UseSourceIpAddress pulumi.BoolInput `pulumi:"useSourceIpAddress"` } func (GetLoadbalancerTargetPoolSessionPersistenceArgs) ElementType() reflect.Type { @@ -21883,47 +22600,6 @@ func (i GetLoadbalancerTargetPoolSessionPersistenceArgs) ToGetLoadbalancerTarget return pulumi.ToOutputWithContext(ctx, i).(GetLoadbalancerTargetPoolSessionPersistenceOutput) } -func (i GetLoadbalancerTargetPoolSessionPersistenceArgs) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutput() GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return i.ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) -} - -func (i GetLoadbalancerTargetPoolSessionPersistenceArgs) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetLoadbalancerTargetPoolSessionPersistenceOutput).ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx) -} - -// GetLoadbalancerTargetPoolSessionPersistencePtrInput is an input type that accepts GetLoadbalancerTargetPoolSessionPersistenceArgs, GetLoadbalancerTargetPoolSessionPersistencePtr and GetLoadbalancerTargetPoolSessionPersistencePtrOutput values. -// You can construct a concrete instance of `GetLoadbalancerTargetPoolSessionPersistencePtrInput` via: -// -// GetLoadbalancerTargetPoolSessionPersistenceArgs{...} -// -// or: -// -// nil -type GetLoadbalancerTargetPoolSessionPersistencePtrInput interface { - pulumi.Input - - ToGetLoadbalancerTargetPoolSessionPersistencePtrOutput() GetLoadbalancerTargetPoolSessionPersistencePtrOutput - ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Context) GetLoadbalancerTargetPoolSessionPersistencePtrOutput -} - -type getLoadbalancerTargetPoolSessionPersistencePtrType GetLoadbalancerTargetPoolSessionPersistenceArgs - -func GetLoadbalancerTargetPoolSessionPersistencePtr(v *GetLoadbalancerTargetPoolSessionPersistenceArgs) GetLoadbalancerTargetPoolSessionPersistencePtrInput { - return (*getLoadbalancerTargetPoolSessionPersistencePtrType)(v) -} - -func (*getLoadbalancerTargetPoolSessionPersistencePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**GetLoadbalancerTargetPoolSessionPersistence)(nil)).Elem() -} - -func (i *getLoadbalancerTargetPoolSessionPersistencePtrType) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutput() GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return i.ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) -} - -func (i *getLoadbalancerTargetPoolSessionPersistencePtrType) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetLoadbalancerTargetPoolSessionPersistencePtrOutput) -} - type GetLoadbalancerTargetPoolSessionPersistenceOutput struct{ *pulumi.OutputState } func (GetLoadbalancerTargetPoolSessionPersistenceOutput) ElementType() reflect.Type { @@ -21938,53 +22614,9 @@ func (o GetLoadbalancerTargetPoolSessionPersistenceOutput) ToGetLoadbalancerTarg return o } -func (o GetLoadbalancerTargetPoolSessionPersistenceOutput) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutput() GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) -} - -func (o GetLoadbalancerTargetPoolSessionPersistenceOutput) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLoadbalancerTargetPoolSessionPersistence) *GetLoadbalancerTargetPoolSessionPersistence { - return &v - }).(GetLoadbalancerTargetPoolSessionPersistencePtrOutput) -} - -// If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. -func (o GetLoadbalancerTargetPoolSessionPersistenceOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetLoadbalancerTargetPoolSessionPersistence) *bool { return v.UseSourceIpAddress }).(pulumi.BoolPtrOutput) -} - -type GetLoadbalancerTargetPoolSessionPersistencePtrOutput struct{ *pulumi.OutputState } - -func (GetLoadbalancerTargetPoolSessionPersistencePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**GetLoadbalancerTargetPoolSessionPersistence)(nil)).Elem() -} - -func (o GetLoadbalancerTargetPoolSessionPersistencePtrOutput) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutput() GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return o -} - -func (o GetLoadbalancerTargetPoolSessionPersistencePtrOutput) ToGetLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) GetLoadbalancerTargetPoolSessionPersistencePtrOutput { - return o -} - -func (o GetLoadbalancerTargetPoolSessionPersistencePtrOutput) Elem() GetLoadbalancerTargetPoolSessionPersistenceOutput { - return o.ApplyT(func(v *GetLoadbalancerTargetPoolSessionPersistence) GetLoadbalancerTargetPoolSessionPersistence { - if v != nil { - return *v - } - var ret GetLoadbalancerTargetPoolSessionPersistence - return ret - }).(GetLoadbalancerTargetPoolSessionPersistenceOutput) -} - // If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. -func (o GetLoadbalancerTargetPoolSessionPersistencePtrOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *GetLoadbalancerTargetPoolSessionPersistence) *bool { - if v == nil { - return nil - } - return v.UseSourceIpAddress - }).(pulumi.BoolPtrOutput) +func (o GetLoadbalancerTargetPoolSessionPersistenceOutput) UseSourceIpAddress() pulumi.BoolOutput { + return o.ApplyT(func(v GetLoadbalancerTargetPoolSessionPersistence) bool { return v.UseSourceIpAddress }).(pulumi.BoolOutput) } type GetLoadbalancerTargetPoolTarget struct { @@ -25988,6 +26620,218 @@ func (o GetSecretsmanagerInstanceKmsKeyOutput) ServiceAccountEmail() pulumi.Stri return o.ApplyT(func(v GetSecretsmanagerInstanceKmsKey) string { return v.ServiceAccountEmail }).(pulumi.StringOutput) } +type GetSecretsmanagerInstanceRoleBindingsV1RoleBinding struct { + // A valid role defined for the resource. + Role string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject string `pulumi:"subject"` +} + +// GetSecretsmanagerInstanceRoleBindingsV1RoleBindingInput is an input type that accepts GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs and GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput values. +// You can construct a concrete instance of `GetSecretsmanagerInstanceRoleBindingsV1RoleBindingInput` via: +// +// GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs{...} +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingInput interface { + pulumi.Input + + ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput + ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutputWithContext(context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput +} + +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs struct { + // A valid role defined for the resource. + Role pulumi.StringInput `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringInput `pulumi:"subject"` +} + +func (GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (i GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput { + return i.ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutputWithContext(context.Background()) +} + +func (i GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutputWithContext(ctx context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) +} + +// GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayInput is an input type that accepts GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray and GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput values. +// You can construct a concrete instance of `GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayInput` via: +// +// GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray{ GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs{...} } +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayInput interface { + pulumi.Input + + ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput + ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutputWithContext(context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput +} + +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray []GetSecretsmanagerInstanceRoleBindingsV1RoleBindingInput + +func (GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSecretsmanagerInstanceRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (i GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput { + return i.ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutputWithContext(context.Background()) +} + +func (i GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutputWithContext(ctx context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) +} + +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput { + return o +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutputWithContext(ctx context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput { + return o +} + +// A valid role defined for the resource. +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1RoleBinding) string { return v.Role }).(pulumi.StringOutput) +} + +// Identifier of user, service account or client. Usually email address or name in case of clients. +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) Subject() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerInstanceRoleBindingsV1RoleBinding) string { return v.Subject }).(pulumi.StringOutput) +} + +type GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSecretsmanagerInstanceRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput { + return o +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) ToGetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutputWithContext(ctx context.Context) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput { + return o +} + +func (o GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput) Index(i pulumi.IntInput) GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetSecretsmanagerInstanceRoleBindingsV1RoleBinding { + return vs[0].([]GetSecretsmanagerInstanceRoleBindingsV1RoleBinding)[vs[1].(int)] + }).(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput) +} + +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding struct { + // A valid role defined for the resource. + Role string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject string `pulumi:"subject"` +} + +// GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingInput is an input type that accepts GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs and GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput values. +// You can construct a concrete instance of `GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingInput` via: +// +// GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs{...} +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingInput interface { + pulumi.Input + + ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput + ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutputWithContext(context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput +} + +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs struct { + // A valid role defined for the resource. + Role pulumi.StringInput `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringInput `pulumi:"subject"` +} + +func (GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (i GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput { + return i.ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutputWithContext(context.Background()) +} + +func (i GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutputWithContext(ctx context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) +} + +// GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayInput is an input type that accepts GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray and GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput values. +// You can construct a concrete instance of `GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayInput` via: +// +// GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray{ GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs{...} } +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayInput interface { + pulumi.Input + + ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput + ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutputWithContext(context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput +} + +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray []GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingInput + +func (GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (i GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput { + return i.ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutputWithContext(context.Background()) +} + +func (i GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutputWithContext(ctx context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) +} + +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput { + return o +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutputWithContext(ctx context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput { + return o +} + +// A valid role defined for the resource. +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding) string { return v.Role }).(pulumi.StringOutput) +} + +// Identifier of user, service account or client. Usually email address or name in case of clients. +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) Subject() pulumi.StringOutput { + return o.ApplyT(func(v GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding) string { return v.Subject }).(pulumi.StringOutput) +} + +type GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput struct{ *pulumi.OutputState } + +func (GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding)(nil)).Elem() +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput() GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput { + return o +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) ToGetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutputWithContext(ctx context.Context) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput { + return o +} + +func (o GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput) Index(i pulumi.IntInput) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding { + return vs[0].([]GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding)[vs[1].(int)] + }).(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput) +} + type GetSecurityGroupRuleIcmpParameters struct { // ICMP code. Can be set if the protocol is ICMP. Code int `pulumi:"code"` @@ -28659,6 +29503,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigBackendCredentialsPtrInput)(nil)).Elem(), CdnDistributionConfigBackendCredentialsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigOptimizerInput)(nil)).Elem(), CdnDistributionConfigOptimizerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigOptimizerPtrInput)(nil)).Elem(), CdnDistributionConfigOptimizerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsInput)(nil)).Elem(), CdnDistributionConfigRedirectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsPtrInput)(nil)).Elem(), CdnDistributionConfigRedirectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsRuleInput)(nil)).Elem(), CdnDistributionConfigRedirectsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsRuleArrayInput)(nil)).Elem(), CdnDistributionConfigRedirectsRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsRuleMatcherInput)(nil)).Elem(), CdnDistributionConfigRedirectsRuleMatcherArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigRedirectsRuleMatcherArrayInput)(nil)).Elem(), CdnDistributionConfigRedirectsRuleMatcherArray{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionDomainInput)(nil)).Elem(), CdnDistributionDomainArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionDomainArrayInput)(nil)).Elem(), CdnDistributionDomainArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DnsRecordSetTimeoutsInput)(nil)).Elem(), DnsRecordSetTimeoutsArgs{}) @@ -28839,6 +29689,11 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigInput)(nil)).Elem(), GetCdnDistributionConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigBackendInput)(nil)).Elem(), GetCdnDistributionConfigBackendArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigOptimizerInput)(nil)).Elem(), GetCdnDistributionConfigOptimizerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigRedirectsInput)(nil)).Elem(), GetCdnDistributionConfigRedirectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleInput)(nil)).Elem(), GetCdnDistributionConfigRedirectsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleArrayInput)(nil)).Elem(), GetCdnDistributionConfigRedirectsRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleMatcherInput)(nil)).Elem(), GetCdnDistributionConfigRedirectsRuleMatcherArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigRedirectsRuleMatcherArrayInput)(nil)).Elem(), GetCdnDistributionConfigRedirectsRuleMatcherArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionDomainInput)(nil)).Elem(), GetCdnDistributionDomainArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionDomainArrayInput)(nil)).Elem(), GetCdnDistributionDomainArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDnsRecordSetTimeoutsInput)(nil)).Elem(), GetDnsRecordSetTimeoutsArgs{}) @@ -28871,7 +29726,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolArrayInput)(nil)).Elem(), GetLoadbalancerTargetPoolArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolActiveHealthCheckInput)(nil)).Elem(), GetLoadbalancerTargetPoolActiveHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolSessionPersistenceInput)(nil)).Elem(), GetLoadbalancerTargetPoolSessionPersistenceArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolSessionPersistencePtrInput)(nil)).Elem(), GetLoadbalancerTargetPoolSessionPersistenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolTargetInput)(nil)).Elem(), GetLoadbalancerTargetPoolTargetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerTargetPoolTargetArrayInput)(nil)).Elem(), GetLoadbalancerTargetPoolTargetArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLogmeInstanceParametersInput)(nil)).Elem(), GetLogmeInstanceParametersArgs{}) @@ -28923,6 +29777,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetRoutingTablesItemInput)(nil)).Elem(), GetRoutingTablesItemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRoutingTablesItemArrayInput)(nil)).Elem(), GetRoutingTablesItemArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSecretsmanagerInstanceKmsKeyInput)(nil)).Elem(), GetSecretsmanagerInstanceKmsKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1RoleBindingInput)(nil)).Elem(), GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayInput)(nil)).Elem(), GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingInput)(nil)).Elem(), GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayInput)(nil)).Elem(), GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSecurityGroupRuleIcmpParametersInput)(nil)).Elem(), GetSecurityGroupRuleIcmpParametersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSecurityGroupRulePortRangeInput)(nil)).Elem(), GetSecurityGroupRulePortRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSecurityGroupRuleProtocolInput)(nil)).Elem(), GetSecurityGroupRuleProtocolArgs{}) @@ -29020,6 +29878,12 @@ func init() { pulumi.RegisterOutputType(CdnDistributionConfigBackendCredentialsPtrOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigOptimizerOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigOptimizerPtrOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsPtrOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsRuleOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsRuleArrayOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsRuleMatcherOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigRedirectsRuleMatcherArrayOutput{}) pulumi.RegisterOutputType(CdnDistributionDomainOutput{}) pulumi.RegisterOutputType(CdnDistributionDomainArrayOutput{}) pulumi.RegisterOutputType(DnsRecordSetTimeoutsOutput{}) @@ -29200,6 +30064,11 @@ func init() { pulumi.RegisterOutputType(GetCdnDistributionConfigOutput{}) pulumi.RegisterOutputType(GetCdnDistributionConfigBackendOutput{}) pulumi.RegisterOutputType(GetCdnDistributionConfigOptimizerOutput{}) + pulumi.RegisterOutputType(GetCdnDistributionConfigRedirectsOutput{}) + pulumi.RegisterOutputType(GetCdnDistributionConfigRedirectsRuleOutput{}) + pulumi.RegisterOutputType(GetCdnDistributionConfigRedirectsRuleArrayOutput{}) + pulumi.RegisterOutputType(GetCdnDistributionConfigRedirectsRuleMatcherOutput{}) + pulumi.RegisterOutputType(GetCdnDistributionConfigRedirectsRuleMatcherArrayOutput{}) pulumi.RegisterOutputType(GetCdnDistributionDomainOutput{}) pulumi.RegisterOutputType(GetCdnDistributionDomainArrayOutput{}) pulumi.RegisterOutputType(GetDnsRecordSetTimeoutsOutput{}) @@ -29232,7 +30101,6 @@ func init() { pulumi.RegisterOutputType(GetLoadbalancerTargetPoolArrayOutput{}) pulumi.RegisterOutputType(GetLoadbalancerTargetPoolActiveHealthCheckOutput{}) pulumi.RegisterOutputType(GetLoadbalancerTargetPoolSessionPersistenceOutput{}) - pulumi.RegisterOutputType(GetLoadbalancerTargetPoolSessionPersistencePtrOutput{}) pulumi.RegisterOutputType(GetLoadbalancerTargetPoolTargetOutput{}) pulumi.RegisterOutputType(GetLoadbalancerTargetPoolTargetArrayOutput{}) pulumi.RegisterOutputType(GetLogmeInstanceParametersOutput{}) @@ -29284,6 +30152,10 @@ func init() { pulumi.RegisterOutputType(GetRoutingTablesItemOutput{}) pulumi.RegisterOutputType(GetRoutingTablesItemArrayOutput{}) pulumi.RegisterOutputType(GetSecretsmanagerInstanceKmsKeyOutput{}) + pulumi.RegisterOutputType(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingOutput{}) + pulumi.RegisterOutputType(GetSecretsmanagerInstanceRoleBindingsV1RoleBindingArrayOutput{}) + pulumi.RegisterOutputType(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingOutput{}) + pulumi.RegisterOutputType(GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingArrayOutput{}) pulumi.RegisterOutputType(GetSecurityGroupRuleIcmpParametersOutput{}) pulumi.RegisterOutputType(GetSecurityGroupRulePortRangeOutput{}) pulumi.RegisterOutputType(GetSecurityGroupRuleProtocolOutput{}) diff --git a/sdk/go/stackit/secretsmanagerInstanceRoleBindingV1.go b/sdk/go/stackit/secretsmanagerInstanceRoleBindingV1.go new file mode 100644 index 0000000..ab5c46f --- /dev/null +++ b/sdk/go/stackit/secretsmanagerInstanceRoleBindingV1.go @@ -0,0 +1,276 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// IAM role binding resource schema. +// +// > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. +// +// ## Example Usage +// +// ## Import +type SecretsmanagerInstanceRoleBindingV1 struct { + pulumi.CustomResourceState + + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringOutput `pulumi:"resourceId"` + // A valid role defined for the resource. + Role pulumi.StringOutput `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringOutput `pulumi:"subject"` +} + +// NewSecretsmanagerInstanceRoleBindingV1 registers a new resource with the given unique name, arguments, and options. +func NewSecretsmanagerInstanceRoleBindingV1(ctx *pulumi.Context, + name string, args *SecretsmanagerInstanceRoleBindingV1Args, opts ...pulumi.ResourceOption) (*SecretsmanagerInstanceRoleBindingV1, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceId == nil { + return nil, errors.New("invalid value for required argument 'ResourceId'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + if args.Subject == nil { + return nil, errors.New("invalid value for required argument 'Subject'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SecretsmanagerInstanceRoleBindingV1 + err := ctx.RegisterResource("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecretsmanagerInstanceRoleBindingV1 gets an existing SecretsmanagerInstanceRoleBindingV1 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecretsmanagerInstanceRoleBindingV1(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecretsmanagerInstanceRoleBindingV1State, opts ...pulumi.ResourceOption) (*SecretsmanagerInstanceRoleBindingV1, error) { + var resource SecretsmanagerInstanceRoleBindingV1 + err := ctx.ReadResource("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SecretsmanagerInstanceRoleBindingV1 resources. +type secretsmanagerInstanceRoleBindingV1State struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId *string `pulumi:"resourceId"` + // A valid role defined for the resource. + Role *string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject *string `pulumi:"subject"` +} + +type SecretsmanagerInstanceRoleBindingV1State struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringPtrInput + // A valid role defined for the resource. + Role pulumi.StringPtrInput + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringPtrInput +} + +func (SecretsmanagerInstanceRoleBindingV1State) ElementType() reflect.Type { + return reflect.TypeOf((*secretsmanagerInstanceRoleBindingV1State)(nil)).Elem() +} + +type secretsmanagerInstanceRoleBindingV1Args struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId string `pulumi:"resourceId"` + // A valid role defined for the resource. + Role string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject string `pulumi:"subject"` +} + +// The set of arguments for constructing a SecretsmanagerInstanceRoleBindingV1 resource. +type SecretsmanagerInstanceRoleBindingV1Args struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringInput + // A valid role defined for the resource. + Role pulumi.StringInput + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringInput +} + +func (SecretsmanagerInstanceRoleBindingV1Args) ElementType() reflect.Type { + return reflect.TypeOf((*secretsmanagerInstanceRoleBindingV1Args)(nil)).Elem() +} + +type SecretsmanagerInstanceRoleBindingV1Input interface { + pulumi.Input + + ToSecretsmanagerInstanceRoleBindingV1Output() SecretsmanagerInstanceRoleBindingV1Output + ToSecretsmanagerInstanceRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1Output +} + +func (*SecretsmanagerInstanceRoleBindingV1) ElementType() reflect.Type { + return reflect.TypeOf((**SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (i *SecretsmanagerInstanceRoleBindingV1) ToSecretsmanagerInstanceRoleBindingV1Output() SecretsmanagerInstanceRoleBindingV1Output { + return i.ToSecretsmanagerInstanceRoleBindingV1OutputWithContext(context.Background()) +} + +func (i *SecretsmanagerInstanceRoleBindingV1) ToSecretsmanagerInstanceRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1Output { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerInstanceRoleBindingV1Output) +} + +// SecretsmanagerInstanceRoleBindingV1ArrayInput is an input type that accepts SecretsmanagerInstanceRoleBindingV1Array and SecretsmanagerInstanceRoleBindingV1ArrayOutput values. +// You can construct a concrete instance of `SecretsmanagerInstanceRoleBindingV1ArrayInput` via: +// +// SecretsmanagerInstanceRoleBindingV1Array{ SecretsmanagerInstanceRoleBindingV1Args{...} } +type SecretsmanagerInstanceRoleBindingV1ArrayInput interface { + pulumi.Input + + ToSecretsmanagerInstanceRoleBindingV1ArrayOutput() SecretsmanagerInstanceRoleBindingV1ArrayOutput + ToSecretsmanagerInstanceRoleBindingV1ArrayOutputWithContext(context.Context) SecretsmanagerInstanceRoleBindingV1ArrayOutput +} + +type SecretsmanagerInstanceRoleBindingV1Array []SecretsmanagerInstanceRoleBindingV1Input + +func (SecretsmanagerInstanceRoleBindingV1Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (i SecretsmanagerInstanceRoleBindingV1Array) ToSecretsmanagerInstanceRoleBindingV1ArrayOutput() SecretsmanagerInstanceRoleBindingV1ArrayOutput { + return i.ToSecretsmanagerInstanceRoleBindingV1ArrayOutputWithContext(context.Background()) +} + +func (i SecretsmanagerInstanceRoleBindingV1Array) ToSecretsmanagerInstanceRoleBindingV1ArrayOutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerInstanceRoleBindingV1ArrayOutput) +} + +// SecretsmanagerInstanceRoleBindingV1MapInput is an input type that accepts SecretsmanagerInstanceRoleBindingV1Map and SecretsmanagerInstanceRoleBindingV1MapOutput values. +// You can construct a concrete instance of `SecretsmanagerInstanceRoleBindingV1MapInput` via: +// +// SecretsmanagerInstanceRoleBindingV1Map{ "key": SecretsmanagerInstanceRoleBindingV1Args{...} } +type SecretsmanagerInstanceRoleBindingV1MapInput interface { + pulumi.Input + + ToSecretsmanagerInstanceRoleBindingV1MapOutput() SecretsmanagerInstanceRoleBindingV1MapOutput + ToSecretsmanagerInstanceRoleBindingV1MapOutputWithContext(context.Context) SecretsmanagerInstanceRoleBindingV1MapOutput +} + +type SecretsmanagerInstanceRoleBindingV1Map map[string]SecretsmanagerInstanceRoleBindingV1Input + +func (SecretsmanagerInstanceRoleBindingV1Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (i SecretsmanagerInstanceRoleBindingV1Map) ToSecretsmanagerInstanceRoleBindingV1MapOutput() SecretsmanagerInstanceRoleBindingV1MapOutput { + return i.ToSecretsmanagerInstanceRoleBindingV1MapOutputWithContext(context.Background()) +} + +func (i SecretsmanagerInstanceRoleBindingV1Map) ToSecretsmanagerInstanceRoleBindingV1MapOutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerInstanceRoleBindingV1MapOutput) +} + +type SecretsmanagerInstanceRoleBindingV1Output struct{ *pulumi.OutputState } + +func (SecretsmanagerInstanceRoleBindingV1Output) ElementType() reflect.Type { + return reflect.TypeOf((**SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerInstanceRoleBindingV1Output) ToSecretsmanagerInstanceRoleBindingV1Output() SecretsmanagerInstanceRoleBindingV1Output { + return o +} + +func (o SecretsmanagerInstanceRoleBindingV1Output) ToSecretsmanagerInstanceRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1Output { + return o +} + +// The resource region. If not defined, the provider region is used. +func (o SecretsmanagerInstanceRoleBindingV1Output) Region() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerInstanceRoleBindingV1) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The identifier of the resource to apply this role binding to. +func (o SecretsmanagerInstanceRoleBindingV1Output) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerInstanceRoleBindingV1) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) +} + +// A valid role defined for the resource. +func (o SecretsmanagerInstanceRoleBindingV1Output) Role() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerInstanceRoleBindingV1) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +// Identifier of user, service account or client. Usually email address or name in case of clients. +func (o SecretsmanagerInstanceRoleBindingV1Output) Subject() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerInstanceRoleBindingV1) pulumi.StringOutput { return v.Subject }).(pulumi.StringOutput) +} + +type SecretsmanagerInstanceRoleBindingV1ArrayOutput struct{ *pulumi.OutputState } + +func (SecretsmanagerInstanceRoleBindingV1ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerInstanceRoleBindingV1ArrayOutput) ToSecretsmanagerInstanceRoleBindingV1ArrayOutput() SecretsmanagerInstanceRoleBindingV1ArrayOutput { + return o +} + +func (o SecretsmanagerInstanceRoleBindingV1ArrayOutput) ToSecretsmanagerInstanceRoleBindingV1ArrayOutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1ArrayOutput { + return o +} + +func (o SecretsmanagerInstanceRoleBindingV1ArrayOutput) Index(i pulumi.IntInput) SecretsmanagerInstanceRoleBindingV1Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SecretsmanagerInstanceRoleBindingV1 { + return vs[0].([]*SecretsmanagerInstanceRoleBindingV1)[vs[1].(int)] + }).(SecretsmanagerInstanceRoleBindingV1Output) +} + +type SecretsmanagerInstanceRoleBindingV1MapOutput struct{ *pulumi.OutputState } + +func (SecretsmanagerInstanceRoleBindingV1MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecretsmanagerInstanceRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerInstanceRoleBindingV1MapOutput) ToSecretsmanagerInstanceRoleBindingV1MapOutput() SecretsmanagerInstanceRoleBindingV1MapOutput { + return o +} + +func (o SecretsmanagerInstanceRoleBindingV1MapOutput) ToSecretsmanagerInstanceRoleBindingV1MapOutputWithContext(ctx context.Context) SecretsmanagerInstanceRoleBindingV1MapOutput { + return o +} + +func (o SecretsmanagerInstanceRoleBindingV1MapOutput) MapIndex(k pulumi.StringInput) SecretsmanagerInstanceRoleBindingV1Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SecretsmanagerInstanceRoleBindingV1 { + return vs[0].(map[string]*SecretsmanagerInstanceRoleBindingV1)[vs[1].(string)] + }).(SecretsmanagerInstanceRoleBindingV1Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerInstanceRoleBindingV1Input)(nil)).Elem(), &SecretsmanagerInstanceRoleBindingV1{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerInstanceRoleBindingV1ArrayInput)(nil)).Elem(), SecretsmanagerInstanceRoleBindingV1Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerInstanceRoleBindingV1MapInput)(nil)).Elem(), SecretsmanagerInstanceRoleBindingV1Map{}) + pulumi.RegisterOutputType(SecretsmanagerInstanceRoleBindingV1Output{}) + pulumi.RegisterOutputType(SecretsmanagerInstanceRoleBindingV1ArrayOutput{}) + pulumi.RegisterOutputType(SecretsmanagerInstanceRoleBindingV1MapOutput{}) +} diff --git a/sdk/go/stackit/secretsmanagerSecretGroupRoleBindingV1.go b/sdk/go/stackit/secretsmanagerSecretGroupRoleBindingV1.go new file mode 100644 index 0000000..18a85fb --- /dev/null +++ b/sdk/go/stackit/secretsmanagerSecretGroupRoleBindingV1.go @@ -0,0 +1,276 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// IAM role binding resource schema. +// +// > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. +// +// ## Example Usage +// +// ## Import +type SecretsmanagerSecretGroupRoleBindingV1 struct { + pulumi.CustomResourceState + + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringOutput `pulumi:"resourceId"` + // A valid role defined for the resource. + Role pulumi.StringOutput `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringOutput `pulumi:"subject"` +} + +// NewSecretsmanagerSecretGroupRoleBindingV1 registers a new resource with the given unique name, arguments, and options. +func NewSecretsmanagerSecretGroupRoleBindingV1(ctx *pulumi.Context, + name string, args *SecretsmanagerSecretGroupRoleBindingV1Args, opts ...pulumi.ResourceOption) (*SecretsmanagerSecretGroupRoleBindingV1, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceId == nil { + return nil, errors.New("invalid value for required argument 'ResourceId'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + if args.Subject == nil { + return nil, errors.New("invalid value for required argument 'Subject'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SecretsmanagerSecretGroupRoleBindingV1 + err := ctx.RegisterResource("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecretsmanagerSecretGroupRoleBindingV1 gets an existing SecretsmanagerSecretGroupRoleBindingV1 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecretsmanagerSecretGroupRoleBindingV1(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecretsmanagerSecretGroupRoleBindingV1State, opts ...pulumi.ResourceOption) (*SecretsmanagerSecretGroupRoleBindingV1, error) { + var resource SecretsmanagerSecretGroupRoleBindingV1 + err := ctx.ReadResource("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SecretsmanagerSecretGroupRoleBindingV1 resources. +type secretsmanagerSecretGroupRoleBindingV1State struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId *string `pulumi:"resourceId"` + // A valid role defined for the resource. + Role *string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject *string `pulumi:"subject"` +} + +type SecretsmanagerSecretGroupRoleBindingV1State struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringPtrInput + // A valid role defined for the resource. + Role pulumi.StringPtrInput + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringPtrInput +} + +func (SecretsmanagerSecretGroupRoleBindingV1State) ElementType() reflect.Type { + return reflect.TypeOf((*secretsmanagerSecretGroupRoleBindingV1State)(nil)).Elem() +} + +type secretsmanagerSecretGroupRoleBindingV1Args struct { + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The identifier of the resource to apply this role binding to. + ResourceId string `pulumi:"resourceId"` + // A valid role defined for the resource. + Role string `pulumi:"role"` + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject string `pulumi:"subject"` +} + +// The set of arguments for constructing a SecretsmanagerSecretGroupRoleBindingV1 resource. +type SecretsmanagerSecretGroupRoleBindingV1Args struct { + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The identifier of the resource to apply this role binding to. + ResourceId pulumi.StringInput + // A valid role defined for the resource. + Role pulumi.StringInput + // Identifier of user, service account or client. Usually email address or name in case of clients. + Subject pulumi.StringInput +} + +func (SecretsmanagerSecretGroupRoleBindingV1Args) ElementType() reflect.Type { + return reflect.TypeOf((*secretsmanagerSecretGroupRoleBindingV1Args)(nil)).Elem() +} + +type SecretsmanagerSecretGroupRoleBindingV1Input interface { + pulumi.Input + + ToSecretsmanagerSecretGroupRoleBindingV1Output() SecretsmanagerSecretGroupRoleBindingV1Output + ToSecretsmanagerSecretGroupRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1Output +} + +func (*SecretsmanagerSecretGroupRoleBindingV1) ElementType() reflect.Type { + return reflect.TypeOf((**SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (i *SecretsmanagerSecretGroupRoleBindingV1) ToSecretsmanagerSecretGroupRoleBindingV1Output() SecretsmanagerSecretGroupRoleBindingV1Output { + return i.ToSecretsmanagerSecretGroupRoleBindingV1OutputWithContext(context.Background()) +} + +func (i *SecretsmanagerSecretGroupRoleBindingV1) ToSecretsmanagerSecretGroupRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1Output { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerSecretGroupRoleBindingV1Output) +} + +// SecretsmanagerSecretGroupRoleBindingV1ArrayInput is an input type that accepts SecretsmanagerSecretGroupRoleBindingV1Array and SecretsmanagerSecretGroupRoleBindingV1ArrayOutput values. +// You can construct a concrete instance of `SecretsmanagerSecretGroupRoleBindingV1ArrayInput` via: +// +// SecretsmanagerSecretGroupRoleBindingV1Array{ SecretsmanagerSecretGroupRoleBindingV1Args{...} } +type SecretsmanagerSecretGroupRoleBindingV1ArrayInput interface { + pulumi.Input + + ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutput() SecretsmanagerSecretGroupRoleBindingV1ArrayOutput + ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutputWithContext(context.Context) SecretsmanagerSecretGroupRoleBindingV1ArrayOutput +} + +type SecretsmanagerSecretGroupRoleBindingV1Array []SecretsmanagerSecretGroupRoleBindingV1Input + +func (SecretsmanagerSecretGroupRoleBindingV1Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (i SecretsmanagerSecretGroupRoleBindingV1Array) ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutput() SecretsmanagerSecretGroupRoleBindingV1ArrayOutput { + return i.ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutputWithContext(context.Background()) +} + +func (i SecretsmanagerSecretGroupRoleBindingV1Array) ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerSecretGroupRoleBindingV1ArrayOutput) +} + +// SecretsmanagerSecretGroupRoleBindingV1MapInput is an input type that accepts SecretsmanagerSecretGroupRoleBindingV1Map and SecretsmanagerSecretGroupRoleBindingV1MapOutput values. +// You can construct a concrete instance of `SecretsmanagerSecretGroupRoleBindingV1MapInput` via: +// +// SecretsmanagerSecretGroupRoleBindingV1Map{ "key": SecretsmanagerSecretGroupRoleBindingV1Args{...} } +type SecretsmanagerSecretGroupRoleBindingV1MapInput interface { + pulumi.Input + + ToSecretsmanagerSecretGroupRoleBindingV1MapOutput() SecretsmanagerSecretGroupRoleBindingV1MapOutput + ToSecretsmanagerSecretGroupRoleBindingV1MapOutputWithContext(context.Context) SecretsmanagerSecretGroupRoleBindingV1MapOutput +} + +type SecretsmanagerSecretGroupRoleBindingV1Map map[string]SecretsmanagerSecretGroupRoleBindingV1Input + +func (SecretsmanagerSecretGroupRoleBindingV1Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (i SecretsmanagerSecretGroupRoleBindingV1Map) ToSecretsmanagerSecretGroupRoleBindingV1MapOutput() SecretsmanagerSecretGroupRoleBindingV1MapOutput { + return i.ToSecretsmanagerSecretGroupRoleBindingV1MapOutputWithContext(context.Background()) +} + +func (i SecretsmanagerSecretGroupRoleBindingV1Map) ToSecretsmanagerSecretGroupRoleBindingV1MapOutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretsmanagerSecretGroupRoleBindingV1MapOutput) +} + +type SecretsmanagerSecretGroupRoleBindingV1Output struct{ *pulumi.OutputState } + +func (SecretsmanagerSecretGroupRoleBindingV1Output) ElementType() reflect.Type { + return reflect.TypeOf((**SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerSecretGroupRoleBindingV1Output) ToSecretsmanagerSecretGroupRoleBindingV1Output() SecretsmanagerSecretGroupRoleBindingV1Output { + return o +} + +func (o SecretsmanagerSecretGroupRoleBindingV1Output) ToSecretsmanagerSecretGroupRoleBindingV1OutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1Output { + return o +} + +// The resource region. If not defined, the provider region is used. +func (o SecretsmanagerSecretGroupRoleBindingV1Output) Region() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerSecretGroupRoleBindingV1) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The identifier of the resource to apply this role binding to. +func (o SecretsmanagerSecretGroupRoleBindingV1Output) ResourceId() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerSecretGroupRoleBindingV1) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) +} + +// A valid role defined for the resource. +func (o SecretsmanagerSecretGroupRoleBindingV1Output) Role() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerSecretGroupRoleBindingV1) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +// Identifier of user, service account or client. Usually email address or name in case of clients. +func (o SecretsmanagerSecretGroupRoleBindingV1Output) Subject() pulumi.StringOutput { + return o.ApplyT(func(v *SecretsmanagerSecretGroupRoleBindingV1) pulumi.StringOutput { return v.Subject }).(pulumi.StringOutput) +} + +type SecretsmanagerSecretGroupRoleBindingV1ArrayOutput struct{ *pulumi.OutputState } + +func (SecretsmanagerSecretGroupRoleBindingV1ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerSecretGroupRoleBindingV1ArrayOutput) ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutput() SecretsmanagerSecretGroupRoleBindingV1ArrayOutput { + return o +} + +func (o SecretsmanagerSecretGroupRoleBindingV1ArrayOutput) ToSecretsmanagerSecretGroupRoleBindingV1ArrayOutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1ArrayOutput { + return o +} + +func (o SecretsmanagerSecretGroupRoleBindingV1ArrayOutput) Index(i pulumi.IntInput) SecretsmanagerSecretGroupRoleBindingV1Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SecretsmanagerSecretGroupRoleBindingV1 { + return vs[0].([]*SecretsmanagerSecretGroupRoleBindingV1)[vs[1].(int)] + }).(SecretsmanagerSecretGroupRoleBindingV1Output) +} + +type SecretsmanagerSecretGroupRoleBindingV1MapOutput struct{ *pulumi.OutputState } + +func (SecretsmanagerSecretGroupRoleBindingV1MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecretsmanagerSecretGroupRoleBindingV1)(nil)).Elem() +} + +func (o SecretsmanagerSecretGroupRoleBindingV1MapOutput) ToSecretsmanagerSecretGroupRoleBindingV1MapOutput() SecretsmanagerSecretGroupRoleBindingV1MapOutput { + return o +} + +func (o SecretsmanagerSecretGroupRoleBindingV1MapOutput) ToSecretsmanagerSecretGroupRoleBindingV1MapOutputWithContext(ctx context.Context) SecretsmanagerSecretGroupRoleBindingV1MapOutput { + return o +} + +func (o SecretsmanagerSecretGroupRoleBindingV1MapOutput) MapIndex(k pulumi.StringInput) SecretsmanagerSecretGroupRoleBindingV1Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SecretsmanagerSecretGroupRoleBindingV1 { + return vs[0].(map[string]*SecretsmanagerSecretGroupRoleBindingV1)[vs[1].(string)] + }).(SecretsmanagerSecretGroupRoleBindingV1Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerSecretGroupRoleBindingV1Input)(nil)).Elem(), &SecretsmanagerSecretGroupRoleBindingV1{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerSecretGroupRoleBindingV1ArrayInput)(nil)).Elem(), SecretsmanagerSecretGroupRoleBindingV1Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretsmanagerSecretGroupRoleBindingV1MapInput)(nil)).Elem(), SecretsmanagerSecretGroupRoleBindingV1Map{}) + pulumi.RegisterOutputType(SecretsmanagerSecretGroupRoleBindingV1Output{}) + pulumi.RegisterOutputType(SecretsmanagerSecretGroupRoleBindingV1ArrayOutput{}) + pulumi.RegisterOutputType(SecretsmanagerSecretGroupRoleBindingV1MapOutput{}) +} diff --git a/sdk/go/stackit/sfsProjectLock.go b/sdk/go/stackit/sfsProjectLock.go new file mode 100644 index 0000000..63fc02f --- /dev/null +++ b/sdk/go/stackit/sfsProjectLock.go @@ -0,0 +1,247 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. +// +// ## Example Usage +type SfsProjectLock struct { + pulumi.CustomResourceState + + // ID of the lock. + LockId pulumi.StringOutput `pulumi:"lockId"` + // STACKIT Project ID to which the project lock is associated. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` +} + +// NewSfsProjectLock registers a new resource with the given unique name, arguments, and options. +func NewSfsProjectLock(ctx *pulumi.Context, + name string, args *SfsProjectLockArgs, opts ...pulumi.ResourceOption) (*SfsProjectLock, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SfsProjectLock + err := ctx.RegisterResource("stackit:index/sfsProjectLock:SfsProjectLock", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSfsProjectLock gets an existing SfsProjectLock resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSfsProjectLock(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SfsProjectLockState, opts ...pulumi.ResourceOption) (*SfsProjectLock, error) { + var resource SfsProjectLock + err := ctx.ReadResource("stackit:index/sfsProjectLock:SfsProjectLock", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SfsProjectLock resources. +type sfsProjectLockState struct { + // ID of the lock. + LockId *string `pulumi:"lockId"` + // STACKIT Project ID to which the project lock is associated. + ProjectId *string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +type SfsProjectLockState struct { + // ID of the lock. + LockId pulumi.StringPtrInput + // STACKIT Project ID to which the project lock is associated. + ProjectId pulumi.StringPtrInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (SfsProjectLockState) ElementType() reflect.Type { + return reflect.TypeOf((*sfsProjectLockState)(nil)).Elem() +} + +type sfsProjectLockArgs struct { + // STACKIT Project ID to which the project lock is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// The set of arguments for constructing a SfsProjectLock resource. +type SfsProjectLockArgs struct { + // STACKIT Project ID to which the project lock is associated. + ProjectId pulumi.StringInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (SfsProjectLockArgs) ElementType() reflect.Type { + return reflect.TypeOf((*sfsProjectLockArgs)(nil)).Elem() +} + +type SfsProjectLockInput interface { + pulumi.Input + + ToSfsProjectLockOutput() SfsProjectLockOutput + ToSfsProjectLockOutputWithContext(ctx context.Context) SfsProjectLockOutput +} + +func (*SfsProjectLock) ElementType() reflect.Type { + return reflect.TypeOf((**SfsProjectLock)(nil)).Elem() +} + +func (i *SfsProjectLock) ToSfsProjectLockOutput() SfsProjectLockOutput { + return i.ToSfsProjectLockOutputWithContext(context.Background()) +} + +func (i *SfsProjectLock) ToSfsProjectLockOutputWithContext(ctx context.Context) SfsProjectLockOutput { + return pulumi.ToOutputWithContext(ctx, i).(SfsProjectLockOutput) +} + +// SfsProjectLockArrayInput is an input type that accepts SfsProjectLockArray and SfsProjectLockArrayOutput values. +// You can construct a concrete instance of `SfsProjectLockArrayInput` via: +// +// SfsProjectLockArray{ SfsProjectLockArgs{...} } +type SfsProjectLockArrayInput interface { + pulumi.Input + + ToSfsProjectLockArrayOutput() SfsProjectLockArrayOutput + ToSfsProjectLockArrayOutputWithContext(context.Context) SfsProjectLockArrayOutput +} + +type SfsProjectLockArray []SfsProjectLockInput + +func (SfsProjectLockArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SfsProjectLock)(nil)).Elem() +} + +func (i SfsProjectLockArray) ToSfsProjectLockArrayOutput() SfsProjectLockArrayOutput { + return i.ToSfsProjectLockArrayOutputWithContext(context.Background()) +} + +func (i SfsProjectLockArray) ToSfsProjectLockArrayOutputWithContext(ctx context.Context) SfsProjectLockArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SfsProjectLockArrayOutput) +} + +// SfsProjectLockMapInput is an input type that accepts SfsProjectLockMap and SfsProjectLockMapOutput values. +// You can construct a concrete instance of `SfsProjectLockMapInput` via: +// +// SfsProjectLockMap{ "key": SfsProjectLockArgs{...} } +type SfsProjectLockMapInput interface { + pulumi.Input + + ToSfsProjectLockMapOutput() SfsProjectLockMapOutput + ToSfsProjectLockMapOutputWithContext(context.Context) SfsProjectLockMapOutput +} + +type SfsProjectLockMap map[string]SfsProjectLockInput + +func (SfsProjectLockMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SfsProjectLock)(nil)).Elem() +} + +func (i SfsProjectLockMap) ToSfsProjectLockMapOutput() SfsProjectLockMapOutput { + return i.ToSfsProjectLockMapOutputWithContext(context.Background()) +} + +func (i SfsProjectLockMap) ToSfsProjectLockMapOutputWithContext(ctx context.Context) SfsProjectLockMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SfsProjectLockMapOutput) +} + +type SfsProjectLockOutput struct{ *pulumi.OutputState } + +func (SfsProjectLockOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SfsProjectLock)(nil)).Elem() +} + +func (o SfsProjectLockOutput) ToSfsProjectLockOutput() SfsProjectLockOutput { + return o +} + +func (o SfsProjectLockOutput) ToSfsProjectLockOutputWithContext(ctx context.Context) SfsProjectLockOutput { + return o +} + +// ID of the lock. +func (o SfsProjectLockOutput) LockId() pulumi.StringOutput { + return o.ApplyT(func(v *SfsProjectLock) pulumi.StringOutput { return v.LockId }).(pulumi.StringOutput) +} + +// STACKIT Project ID to which the project lock is associated. +func (o SfsProjectLockOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *SfsProjectLock) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o SfsProjectLockOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *SfsProjectLock) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +type SfsProjectLockArrayOutput struct{ *pulumi.OutputState } + +func (SfsProjectLockArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SfsProjectLock)(nil)).Elem() +} + +func (o SfsProjectLockArrayOutput) ToSfsProjectLockArrayOutput() SfsProjectLockArrayOutput { + return o +} + +func (o SfsProjectLockArrayOutput) ToSfsProjectLockArrayOutputWithContext(ctx context.Context) SfsProjectLockArrayOutput { + return o +} + +func (o SfsProjectLockArrayOutput) Index(i pulumi.IntInput) SfsProjectLockOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SfsProjectLock { + return vs[0].([]*SfsProjectLock)[vs[1].(int)] + }).(SfsProjectLockOutput) +} + +type SfsProjectLockMapOutput struct{ *pulumi.OutputState } + +func (SfsProjectLockMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SfsProjectLock)(nil)).Elem() +} + +func (o SfsProjectLockMapOutput) ToSfsProjectLockMapOutput() SfsProjectLockMapOutput { + return o +} + +func (o SfsProjectLockMapOutput) ToSfsProjectLockMapOutputWithContext(ctx context.Context) SfsProjectLockMapOutput { + return o +} + +func (o SfsProjectLockMapOutput) MapIndex(k pulumi.StringInput) SfsProjectLockOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SfsProjectLock { + return vs[0].(map[string]*SfsProjectLock)[vs[1].(string)] + }).(SfsProjectLockOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SfsProjectLockInput)(nil)).Elem(), &SfsProjectLock{}) + pulumi.RegisterInputType(reflect.TypeOf((*SfsProjectLockArrayInput)(nil)).Elem(), SfsProjectLockArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SfsProjectLockMapInput)(nil)).Elem(), SfsProjectLockMap{}) + pulumi.RegisterOutputType(SfsProjectLockOutput{}) + pulumi.RegisterOutputType(SfsProjectLockArrayOutput{}) + pulumi.RegisterOutputType(SfsProjectLockMapOutput{}) +} diff --git a/sdk/go/stackit/sfsShare.go b/sdk/go/stackit/sfsShare.go index 5c0d6c9..4d95984 100644 --- a/sdk/go/stackit/sfsShare.go +++ b/sdk/go/stackit/sfsShare.go @@ -24,7 +24,7 @@ type SfsShare struct { // Note that if this is set to an empty string, the Share can only be mounted in read only by // clients with IPs matching the IP ACL of the Resource Pool hosting this Share. // You can also assign a Share Export Policy after creating the Share - ExportPolicy pulumi.StringOutput `pulumi:"exportPolicy"` + ExportPolicy pulumi.StringPtrOutput `pulumi:"exportPolicy"` // Mount path of the Share, used to mount the Share MountPath pulumi.StringOutput `pulumi:"mountPath"` // Name of the share. @@ -50,9 +50,6 @@ func NewSfsShare(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } - if args.ExportPolicy == nil { - return nil, errors.New("invalid value for required argument 'ExportPolicy'") - } if args.ProjectId == nil { return nil, errors.New("invalid value for required argument 'ProjectId'") } @@ -141,7 +138,7 @@ type sfsShareArgs struct { // Note that if this is set to an empty string, the Share can only be mounted in read only by // clients with IPs matching the IP ACL of the Resource Pool hosting this Share. // You can also assign a Share Export Policy after creating the Share - ExportPolicy string `pulumi:"exportPolicy"` + ExportPolicy *string `pulumi:"exportPolicy"` // Name of the share. Name *string `pulumi:"name"` // STACKIT project ID to which the share is associated. @@ -162,7 +159,7 @@ type SfsShareArgs struct { // Note that if this is set to an empty string, the Share can only be mounted in read only by // clients with IPs matching the IP ACL of the Resource Pool hosting this Share. // You can also assign a Share Export Policy after creating the Share - ExportPolicy pulumi.StringInput + ExportPolicy pulumi.StringPtrInput // Name of the share. Name pulumi.StringPtrInput // STACKIT project ID to which the share is associated. @@ -268,8 +265,8 @@ func (o SfsShareOutput) ToSfsShareOutputWithContext(ctx context.Context) SfsShar // Note that if this is set to an empty string, the Share can only be mounted in read only by // clients with IPs matching the IP ACL of the Resource Pool hosting this Share. // You can also assign a Share Export Policy after creating the Share -func (o SfsShareOutput) ExportPolicy() pulumi.StringOutput { - return o.ApplyT(func(v *SfsShare) pulumi.StringOutput { return v.ExportPolicy }).(pulumi.StringOutput) +func (o SfsShareOutput) ExportPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SfsShare) pulumi.StringPtrOutput { return v.ExportPolicy }).(pulumi.StringPtrOutput) } // Mount path of the Share, used to mount the Share diff --git a/sdk/go/stackit/skeCluster.go b/sdk/go/stackit/skeCluster.go index 686797c..a1a5046 100644 --- a/sdk/go/stackit/skeCluster.go +++ b/sdk/go/stackit/skeCluster.go @@ -37,6 +37,7 @@ type SkeCluster struct { // Network block as defined below. Network SkeClusterNetworkOutput `pulumi:"network"` // One or more `nodePool` block as defined below. + // To keep your Terraform plans clean and readable, always append new node pools to the end of the list. NodePools SkeClusterNodePoolArrayOutput `pulumi:"nodePools"` // The network ranges (in CIDR notation) used by pods of the cluster. PodAddressRanges pulumi.StringArrayOutput `pulumi:"podAddressRanges"` @@ -99,6 +100,7 @@ type skeClusterState struct { // Network block as defined below. Network *SkeClusterNetwork `pulumi:"network"` // One or more `nodePool` block as defined below. + // To keep your Terraform plans clean and readable, always append new node pools to the end of the list. NodePools []SkeClusterNodePool `pulumi:"nodePools"` // The network ranges (in CIDR notation) used by pods of the cluster. PodAddressRanges []string `pulumi:"podAddressRanges"` @@ -126,6 +128,7 @@ type SkeClusterState struct { // Network block as defined below. Network SkeClusterNetworkPtrInput // One or more `nodePool` block as defined below. + // To keep your Terraform plans clean and readable, always append new node pools to the end of the list. NodePools SkeClusterNodePoolArrayInput // The network ranges (in CIDR notation) used by pods of the cluster. PodAddressRanges pulumi.StringArrayInput @@ -153,6 +156,7 @@ type skeClusterArgs struct { // Network block as defined below. Network *SkeClusterNetwork `pulumi:"network"` // One or more `nodePool` block as defined below. + // To keep your Terraform plans clean and readable, always append new node pools to the end of the list. NodePools []SkeClusterNodePool `pulumi:"nodePools"` // STACKIT project ID to which the cluster is associated. ProjectId string `pulumi:"projectId"` @@ -175,6 +179,7 @@ type SkeClusterArgs struct { // Network block as defined below. Network SkeClusterNetworkPtrInput // One or more `nodePool` block as defined below. + // To keep your Terraform plans clean and readable, always append new node pools to the end of the list. NodePools SkeClusterNodePoolArrayInput // STACKIT project ID to which the cluster is associated. ProjectId pulumi.StringInput @@ -310,6 +315,7 @@ func (o SkeClusterOutput) Network() SkeClusterNetworkOutput { } // One or more `nodePool` block as defined below. +// To keep your Terraform plans clean and readable, always append new node pools to the end of the list. func (o SkeClusterOutput) NodePools() SkeClusterNodePoolArrayOutput { return o.ApplyT(func(v *SkeCluster) SkeClusterNodePoolArrayOutput { return v.NodePools }).(SkeClusterNodePoolArrayOutput) } diff --git a/sdk/nodejs/authorizationFolderCustomRole.ts b/sdk/nodejs/authorizationFolderCustomRole.ts new file mode 100644 index 0000000..25c37ce --- /dev/null +++ b/sdk/nodejs/authorizationFolderCustomRole.ts @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export class AuthorizationFolderCustomRole extends pulumi.CustomResource { + /** + * Get an existing AuthorizationFolderCustomRole resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AuthorizationFolderCustomRoleState, opts?: pulumi.CustomResourceOptions): AuthorizationFolderCustomRole { + return new AuthorizationFolderCustomRole(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole'; + + /** + * Returns true if the given object is an instance of AuthorizationFolderCustomRole. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AuthorizationFolderCustomRole { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AuthorizationFolderCustomRole.__pulumiType; + } + + /** + * A human readable description of the role. + */ + declare public readonly description: pulumi.Output; + /** + * Name of the role + */ + declare public readonly name: pulumi.Output; + /** + * Permissions for the role + */ + declare public readonly permissions: pulumi.Output; + /** + * Resource to add the custom role to. + */ + declare public readonly resourceId: pulumi.Output; + /** + * The ID of the role. + */ + declare public /*out*/ readonly roleId: pulumi.Output; + + /** + * Create a AuthorizationFolderCustomRole resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AuthorizationFolderCustomRoleArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AuthorizationFolderCustomRoleArgs | AuthorizationFolderCustomRoleState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AuthorizationFolderCustomRoleState | undefined; + resourceInputs["description"] = state?.description; + resourceInputs["name"] = state?.name; + resourceInputs["permissions"] = state?.permissions; + resourceInputs["resourceId"] = state?.resourceId; + resourceInputs["roleId"] = state?.roleId; + } else { + const args = argsOrState as AuthorizationFolderCustomRoleArgs | undefined; + if (args?.description === undefined && !opts.urn) { + throw new Error("Missing required property 'description'"); + } + if (args?.permissions === undefined && !opts.urn) { + throw new Error("Missing required property 'permissions'"); + } + if (args?.resourceId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceId'"); + } + resourceInputs["description"] = args?.description; + resourceInputs["name"] = args?.name; + resourceInputs["permissions"] = args?.permissions; + resourceInputs["resourceId"] = args?.resourceId; + resourceInputs["roleId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AuthorizationFolderCustomRole.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AuthorizationFolderCustomRole resources. + */ +export interface AuthorizationFolderCustomRoleState { + /** + * A human readable description of the role. + */ + description?: pulumi.Input; + /** + * Name of the role + */ + name?: pulumi.Input; + /** + * Permissions for the role + */ + permissions?: pulumi.Input[]>; + /** + * Resource to add the custom role to. + */ + resourceId?: pulumi.Input; + /** + * The ID of the role. + */ + roleId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AuthorizationFolderCustomRole resource. + */ +export interface AuthorizationFolderCustomRoleArgs { + /** + * A human readable description of the role. + */ + description: pulumi.Input; + /** + * Name of the role + */ + name?: pulumi.Input; + /** + * Permissions for the role + */ + permissions: pulumi.Input[]>; + /** + * Resource to add the custom role to. + */ + resourceId: pulumi.Input; +} diff --git a/sdk/nodejs/authorizationOrganizationCustomRole.ts b/sdk/nodejs/authorizationOrganizationCustomRole.ts new file mode 100644 index 0000000..83cbf01 --- /dev/null +++ b/sdk/nodejs/authorizationOrganizationCustomRole.ts @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export class AuthorizationOrganizationCustomRole extends pulumi.CustomResource { + /** + * Get an existing AuthorizationOrganizationCustomRole resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AuthorizationOrganizationCustomRoleState, opts?: pulumi.CustomResourceOptions): AuthorizationOrganizationCustomRole { + return new AuthorizationOrganizationCustomRole(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole'; + + /** + * Returns true if the given object is an instance of AuthorizationOrganizationCustomRole. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AuthorizationOrganizationCustomRole { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AuthorizationOrganizationCustomRole.__pulumiType; + } + + /** + * A human readable description of the role. + */ + declare public readonly description: pulumi.Output; + /** + * Name of the role + */ + declare public readonly name: pulumi.Output; + /** + * Permissions for the role + */ + declare public readonly permissions: pulumi.Output; + /** + * Resource to add the custom role to. + */ + declare public readonly resourceId: pulumi.Output; + /** + * The ID of the role. + */ + declare public /*out*/ readonly roleId: pulumi.Output; + + /** + * Create a AuthorizationOrganizationCustomRole resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AuthorizationOrganizationCustomRoleArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AuthorizationOrganizationCustomRoleArgs | AuthorizationOrganizationCustomRoleState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AuthorizationOrganizationCustomRoleState | undefined; + resourceInputs["description"] = state?.description; + resourceInputs["name"] = state?.name; + resourceInputs["permissions"] = state?.permissions; + resourceInputs["resourceId"] = state?.resourceId; + resourceInputs["roleId"] = state?.roleId; + } else { + const args = argsOrState as AuthorizationOrganizationCustomRoleArgs | undefined; + if (args?.description === undefined && !opts.urn) { + throw new Error("Missing required property 'description'"); + } + if (args?.permissions === undefined && !opts.urn) { + throw new Error("Missing required property 'permissions'"); + } + if (args?.resourceId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceId'"); + } + resourceInputs["description"] = args?.description; + resourceInputs["name"] = args?.name; + resourceInputs["permissions"] = args?.permissions; + resourceInputs["resourceId"] = args?.resourceId; + resourceInputs["roleId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AuthorizationOrganizationCustomRole.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AuthorizationOrganizationCustomRole resources. + */ +export interface AuthorizationOrganizationCustomRoleState { + /** + * A human readable description of the role. + */ + description?: pulumi.Input; + /** + * Name of the role + */ + name?: pulumi.Input; + /** + * Permissions for the role + */ + permissions?: pulumi.Input[]>; + /** + * Resource to add the custom role to. + */ + resourceId?: pulumi.Input; + /** + * The ID of the role. + */ + roleId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AuthorizationOrganizationCustomRole resource. + */ +export interface AuthorizationOrganizationCustomRoleArgs { + /** + * A human readable description of the role. + */ + description: pulumi.Input; + /** + * Name of the role + */ + name?: pulumi.Input; + /** + * Permissions for the role + */ + permissions: pulumi.Input[]>; + /** + * Resource to add the custom role to. + */ + resourceId: pulumi.Input; +} diff --git a/sdk/nodejs/getAuthorizationFolderCustomRole.ts b/sdk/nodejs/getAuthorizationFolderCustomRole.ts new file mode 100644 index 0000000..e843834 --- /dev/null +++ b/sdk/nodejs/getAuthorizationFolderCustomRole.ts @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export function getAuthorizationFolderCustomRole(args: GetAuthorizationFolderCustomRoleArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", { + "resourceId": args.resourceId, + "roleId": args.roleId, + }, opts); +} + +/** + * A collection of arguments for invoking getAuthorizationFolderCustomRole. + */ +export interface GetAuthorizationFolderCustomRoleArgs { + /** + * Resource to add the custom role to. + */ + resourceId: string; + /** + * The ID of the role. + */ + roleId: string; +} + +/** + * A collection of values returned by getAuthorizationFolderCustomRole. + */ +export interface GetAuthorizationFolderCustomRoleResult { + /** + * A human readable description of the role. + */ + readonly description: string; + /** + * Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + */ + readonly id: string; + /** + * Name of the role + */ + readonly name: string; + /** + * Permissions for the role + */ + readonly permissions: string[]; + /** + * Resource to add the custom role to. + */ + readonly resourceId: string; + /** + * The ID of the role. + */ + readonly roleId: string; +} +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export function getAuthorizationFolderCustomRoleOutput(args: GetAuthorizationFolderCustomRoleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole", { + "resourceId": args.resourceId, + "roleId": args.roleId, + }, opts); +} + +/** + * A collection of arguments for invoking getAuthorizationFolderCustomRole. + */ +export interface GetAuthorizationFolderCustomRoleOutputArgs { + /** + * Resource to add the custom role to. + */ + resourceId: pulumi.Input; + /** + * The ID of the role. + */ + roleId: pulumi.Input; +} diff --git a/sdk/nodejs/getAuthorizationOrganizationCustomRole.ts b/sdk/nodejs/getAuthorizationOrganizationCustomRole.ts new file mode 100644 index 0000000..3513a62 --- /dev/null +++ b/sdk/nodejs/getAuthorizationOrganizationCustomRole.ts @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export function getAuthorizationOrganizationCustomRole(args: GetAuthorizationOrganizationCustomRoleArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", { + "resourceId": args.resourceId, + "roleId": args.roleId, + }, opts); +} + +/** + * A collection of arguments for invoking getAuthorizationOrganizationCustomRole. + */ +export interface GetAuthorizationOrganizationCustomRoleArgs { + /** + * Resource to add the custom role to. + */ + resourceId: string; + /** + * The ID of the role. + */ + roleId: string; +} + +/** + * A collection of values returned by getAuthorizationOrganizationCustomRole. + */ +export interface GetAuthorizationOrganizationCustomRoleResult { + /** + * A human readable description of the role. + */ + readonly description: string; + /** + * Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + */ + readonly id: string; + /** + * Name of the role + */ + readonly name: string; + /** + * Permissions for the role + */ + readonly permissions: string[]; + /** + * Resource to add the custom role to. + */ + readonly resourceId: string; + /** + * The ID of the role. + */ + readonly roleId: string; +} +/** + * Custom Role resource schema. + * + * ## Example Usage + */ +export function getAuthorizationOrganizationCustomRoleOutput(args: GetAuthorizationOrganizationCustomRoleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole", { + "resourceId": args.resourceId, + "roleId": args.roleId, + }, opts); +} + +/** + * A collection of arguments for invoking getAuthorizationOrganizationCustomRole. + */ +export interface GetAuthorizationOrganizationCustomRoleOutputArgs { + /** + * Resource to add the custom role to. + */ + resourceId: pulumi.Input; + /** + * The ID of the role. + */ + roleId: pulumi.Input; +} diff --git a/sdk/nodejs/getSecretsmanagerInstanceRoleBindingsV1.ts b/sdk/nodejs/getSecretsmanagerInstanceRoleBindingsV1.ts new file mode 100644 index 0000000..0eb9d12 --- /dev/null +++ b/sdk/nodejs/getSecretsmanagerInstanceRoleBindingsV1.ts @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * IAM role binding datasource schema. + * + * > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + */ +export function getSecretsmanagerInstanceRoleBindingsV1(args: GetSecretsmanagerInstanceRoleBindingsV1Args, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", { + "region": args.region, + "resourceId": args.resourceId, + }, opts); +} + +/** + * A collection of arguments for invoking getSecretsmanagerInstanceRoleBindingsV1. + */ +export interface GetSecretsmanagerInstanceRoleBindingsV1Args { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; + /** + * The identifier of the resource to get the role bindings for. + */ + resourceId: string; +} + +/** + * A collection of values returned by getSecretsmanagerInstanceRoleBindingsV1. + */ +export interface GetSecretsmanagerInstanceRoleBindingsV1Result { + /** + * Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". + */ + readonly id: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region?: string; + /** + * The identifier of the resource to get the role bindings for. + */ + readonly resourceId: string; + /** + * List of role bindings. + */ + readonly roleBindings: outputs.GetSecretsmanagerInstanceRoleBindingsV1RoleBinding[]; +} +/** + * IAM role binding datasource schema. + * + * > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + */ +export function getSecretsmanagerInstanceRoleBindingsV1Output(args: GetSecretsmanagerInstanceRoleBindingsV1OutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1", { + "region": args.region, + "resourceId": args.resourceId, + }, opts); +} + +/** + * A collection of arguments for invoking getSecretsmanagerInstanceRoleBindingsV1. + */ +export interface GetSecretsmanagerInstanceRoleBindingsV1OutputArgs { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to get the role bindings for. + */ + resourceId: pulumi.Input; +} diff --git a/sdk/nodejs/getSecretsmanagerSecretGroupRoleBindingsV1.ts b/sdk/nodejs/getSecretsmanagerSecretGroupRoleBindingsV1.ts new file mode 100644 index 0000000..08aabff --- /dev/null +++ b/sdk/nodejs/getSecretsmanagerSecretGroupRoleBindingsV1.ts @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * IAM role binding datasource schema. + * + * > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + */ +export function getSecretsmanagerSecretGroupRoleBindingsV1(args: GetSecretsmanagerSecretGroupRoleBindingsV1Args, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", { + "region": args.region, + "resourceId": args.resourceId, + }, opts); +} + +/** + * A collection of arguments for invoking getSecretsmanagerSecretGroupRoleBindingsV1. + */ +export interface GetSecretsmanagerSecretGroupRoleBindingsV1Args { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; + /** + * The identifier of the resource to get the role bindings for. + */ + resourceId: string; +} + +/** + * A collection of values returned by getSecretsmanagerSecretGroupRoleBindingsV1. + */ +export interface GetSecretsmanagerSecretGroupRoleBindingsV1Result { + /** + * Terraform's internal resource identifier. It is structured as "`region`,`resourceId`". + */ + readonly id: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region?: string; + /** + * The identifier of the resource to get the role bindings for. + */ + readonly resourceId: string; + /** + * List of role bindings. + */ + readonly roleBindings: outputs.GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding[]; +} +/** + * IAM role binding datasource schema. + * + * > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + */ +export function getSecretsmanagerSecretGroupRoleBindingsV1Output(args: GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1", { + "region": args.region, + "resourceId": args.resourceId, + }, opts); +} + +/** + * A collection of arguments for invoking getSecretsmanagerSecretGroupRoleBindingsV1. + */ +export interface GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to get the role bindings for. + */ + resourceId: pulumi.Input; +} diff --git a/sdk/nodejs/getSfsProjectLock.ts b/sdk/nodejs/getSfsProjectLock.ts new file mode 100644 index 0000000..69da1a8 --- /dev/null +++ b/sdk/nodejs/getSfsProjectLock.ts @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + * + * ## Example Usage + */ +export function getSfsProjectLock(args: GetSfsProjectLockArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getSfsProjectLock:getSfsProjectLock", { + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getSfsProjectLock. + */ +export interface GetSfsProjectLockArgs { + /** + * STACKIT Project ID to which the project lock is associated. + */ + projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; +} + +/** + * A collection of values returned by getSfsProjectLock. + */ +export interface GetSfsProjectLockResult { + /** + * Terraform's internal resource identifier. It is structured as "`projectId`,`region`". + */ + readonly id: string; + /** + * ID of the lock. + */ + readonly lockId: string; + /** + * STACKIT Project ID to which the project lock is associated. + */ + readonly projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region: string; +} +/** + * SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + * + * ## Example Usage + */ +export function getSfsProjectLockOutput(args: GetSfsProjectLockOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getSfsProjectLock:getSfsProjectLock", { + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getSfsProjectLock. + */ +export interface GetSfsProjectLockOutputArgs { + /** + * STACKIT Project ID to which the project lock is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index b596b9e..519f384 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -20,11 +20,21 @@ export type ApplicationLoadBalancer = import("./applicationLoadBalancer").Applic export const ApplicationLoadBalancer: typeof import("./applicationLoadBalancer").ApplicationLoadBalancer = null as any; utilities.lazyLoad(exports, ["ApplicationLoadBalancer"], () => require("./applicationLoadBalancer")); +export { AuthorizationFolderCustomRoleArgs, AuthorizationFolderCustomRoleState } from "./authorizationFolderCustomRole"; +export type AuthorizationFolderCustomRole = import("./authorizationFolderCustomRole").AuthorizationFolderCustomRole; +export const AuthorizationFolderCustomRole: typeof import("./authorizationFolderCustomRole").AuthorizationFolderCustomRole = null as any; +utilities.lazyLoad(exports, ["AuthorizationFolderCustomRole"], () => require("./authorizationFolderCustomRole")); + export { AuthorizationFolderRoleAssignmentArgs, AuthorizationFolderRoleAssignmentState } from "./authorizationFolderRoleAssignment"; export type AuthorizationFolderRoleAssignment = import("./authorizationFolderRoleAssignment").AuthorizationFolderRoleAssignment; export const AuthorizationFolderRoleAssignment: typeof import("./authorizationFolderRoleAssignment").AuthorizationFolderRoleAssignment = null as any; utilities.lazyLoad(exports, ["AuthorizationFolderRoleAssignment"], () => require("./authorizationFolderRoleAssignment")); +export { AuthorizationOrganizationCustomRoleArgs, AuthorizationOrganizationCustomRoleState } from "./authorizationOrganizationCustomRole"; +export type AuthorizationOrganizationCustomRole = import("./authorizationOrganizationCustomRole").AuthorizationOrganizationCustomRole; +export const AuthorizationOrganizationCustomRole: typeof import("./authorizationOrganizationCustomRole").AuthorizationOrganizationCustomRole = null as any; +utilities.lazyLoad(exports, ["AuthorizationOrganizationCustomRole"], () => require("./authorizationOrganizationCustomRole")); + export { AuthorizationOrganizationRoleAssignmentArgs, AuthorizationOrganizationRoleAssignmentState } from "./authorizationOrganizationRoleAssignment"; export type AuthorizationOrganizationRoleAssignment = import("./authorizationOrganizationRoleAssignment").AuthorizationOrganizationRoleAssignment; export const AuthorizationOrganizationRoleAssignment: typeof import("./authorizationOrganizationRoleAssignment").AuthorizationOrganizationRoleAssignment = null as any; @@ -95,6 +105,16 @@ export const getApplicationLoadBalancer: typeof import("./getApplicationLoadBala export const getApplicationLoadBalancerOutput: typeof import("./getApplicationLoadBalancer").getApplicationLoadBalancerOutput = null as any; utilities.lazyLoad(exports, ["getApplicationLoadBalancer","getApplicationLoadBalancerOutput"], () => require("./getApplicationLoadBalancer")); +export { GetAuthorizationFolderCustomRoleArgs, GetAuthorizationFolderCustomRoleResult, GetAuthorizationFolderCustomRoleOutputArgs } from "./getAuthorizationFolderCustomRole"; +export const getAuthorizationFolderCustomRole: typeof import("./getAuthorizationFolderCustomRole").getAuthorizationFolderCustomRole = null as any; +export const getAuthorizationFolderCustomRoleOutput: typeof import("./getAuthorizationFolderCustomRole").getAuthorizationFolderCustomRoleOutput = null as any; +utilities.lazyLoad(exports, ["getAuthorizationFolderCustomRole","getAuthorizationFolderCustomRoleOutput"], () => require("./getAuthorizationFolderCustomRole")); + +export { GetAuthorizationOrganizationCustomRoleArgs, GetAuthorizationOrganizationCustomRoleResult, GetAuthorizationOrganizationCustomRoleOutputArgs } from "./getAuthorizationOrganizationCustomRole"; +export const getAuthorizationOrganizationCustomRole: typeof import("./getAuthorizationOrganizationCustomRole").getAuthorizationOrganizationCustomRole = null as any; +export const getAuthorizationOrganizationCustomRoleOutput: typeof import("./getAuthorizationOrganizationCustomRole").getAuthorizationOrganizationCustomRoleOutput = null as any; +utilities.lazyLoad(exports, ["getAuthorizationOrganizationCustomRole","getAuthorizationOrganizationCustomRoleOutput"], () => require("./getAuthorizationOrganizationCustomRole")); + export { GetAuthorizationProjectCustomRoleArgs, GetAuthorizationProjectCustomRoleResult, GetAuthorizationProjectCustomRoleOutputArgs } from "./getAuthorizationProjectCustomRole"; export const getAuthorizationProjectCustomRole: typeof import("./getAuthorizationProjectCustomRole").getAuthorizationProjectCustomRole = null as any; export const getAuthorizationProjectCustomRoleOutput: typeof import("./getAuthorizationProjectCustomRole").getAuthorizationProjectCustomRoleOutput = null as any; @@ -390,6 +410,16 @@ export const getSecretsmanagerInstance: typeof import("./getSecretsmanagerInstan export const getSecretsmanagerInstanceOutput: typeof import("./getSecretsmanagerInstance").getSecretsmanagerInstanceOutput = null as any; utilities.lazyLoad(exports, ["getSecretsmanagerInstance","getSecretsmanagerInstanceOutput"], () => require("./getSecretsmanagerInstance")); +export { GetSecretsmanagerInstanceRoleBindingsV1Args, GetSecretsmanagerInstanceRoleBindingsV1Result, GetSecretsmanagerInstanceRoleBindingsV1OutputArgs } from "./getSecretsmanagerInstanceRoleBindingsV1"; +export const getSecretsmanagerInstanceRoleBindingsV1: typeof import("./getSecretsmanagerInstanceRoleBindingsV1").getSecretsmanagerInstanceRoleBindingsV1 = null as any; +export const getSecretsmanagerInstanceRoleBindingsV1Output: typeof import("./getSecretsmanagerInstanceRoleBindingsV1").getSecretsmanagerInstanceRoleBindingsV1Output = null as any; +utilities.lazyLoad(exports, ["getSecretsmanagerInstanceRoleBindingsV1","getSecretsmanagerInstanceRoleBindingsV1Output"], () => require("./getSecretsmanagerInstanceRoleBindingsV1")); + +export { GetSecretsmanagerSecretGroupRoleBindingsV1Args, GetSecretsmanagerSecretGroupRoleBindingsV1Result, GetSecretsmanagerSecretGroupRoleBindingsV1OutputArgs } from "./getSecretsmanagerSecretGroupRoleBindingsV1"; +export const getSecretsmanagerSecretGroupRoleBindingsV1: typeof import("./getSecretsmanagerSecretGroupRoleBindingsV1").getSecretsmanagerSecretGroupRoleBindingsV1 = null as any; +export const getSecretsmanagerSecretGroupRoleBindingsV1Output: typeof import("./getSecretsmanagerSecretGroupRoleBindingsV1").getSecretsmanagerSecretGroupRoleBindingsV1Output = null as any; +utilities.lazyLoad(exports, ["getSecretsmanagerSecretGroupRoleBindingsV1","getSecretsmanagerSecretGroupRoleBindingsV1Output"], () => require("./getSecretsmanagerSecretGroupRoleBindingsV1")); + export { GetSecretsmanagerUserArgs, GetSecretsmanagerUserResult, GetSecretsmanagerUserOutputArgs } from "./getSecretsmanagerUser"; export const getSecretsmanagerUser: typeof import("./getSecretsmanagerUser").getSecretsmanagerUser = null as any; export const getSecretsmanagerUserOutput: typeof import("./getSecretsmanagerUser").getSecretsmanagerUserOutput = null as any; @@ -455,6 +485,11 @@ export const getSfsExportPolicy: typeof import("./getSfsExportPolicy").getSfsExp export const getSfsExportPolicyOutput: typeof import("./getSfsExportPolicy").getSfsExportPolicyOutput = null as any; utilities.lazyLoad(exports, ["getSfsExportPolicy","getSfsExportPolicyOutput"], () => require("./getSfsExportPolicy")); +export { GetSfsProjectLockArgs, GetSfsProjectLockResult, GetSfsProjectLockOutputArgs } from "./getSfsProjectLock"; +export const getSfsProjectLock: typeof import("./getSfsProjectLock").getSfsProjectLock = null as any; +export const getSfsProjectLockOutput: typeof import("./getSfsProjectLock").getSfsProjectLockOutput = null as any; +utilities.lazyLoad(exports, ["getSfsProjectLock","getSfsProjectLockOutput"], () => require("./getSfsProjectLock")); + export { GetSfsResourcePoolArgs, GetSfsResourcePoolResult, GetSfsResourcePoolOutputArgs } from "./getSfsResourcePool"; export const getSfsResourcePool: typeof import("./getSfsResourcePool").getSfsResourcePool = null as any; export const getSfsResourcePoolOutput: typeof import("./getSfsResourcePool").getSfsResourcePoolOutput = null as any; @@ -748,6 +783,16 @@ export type SecretsmanagerInstance = import("./secretsmanagerInstance").Secretsm export const SecretsmanagerInstance: typeof import("./secretsmanagerInstance").SecretsmanagerInstance = null as any; utilities.lazyLoad(exports, ["SecretsmanagerInstance"], () => require("./secretsmanagerInstance")); +export { SecretsmanagerInstanceRoleBindingV1Args, SecretsmanagerInstanceRoleBindingV1State } from "./secretsmanagerInstanceRoleBindingV1"; +export type SecretsmanagerInstanceRoleBindingV1 = import("./secretsmanagerInstanceRoleBindingV1").SecretsmanagerInstanceRoleBindingV1; +export const SecretsmanagerInstanceRoleBindingV1: typeof import("./secretsmanagerInstanceRoleBindingV1").SecretsmanagerInstanceRoleBindingV1 = null as any; +utilities.lazyLoad(exports, ["SecretsmanagerInstanceRoleBindingV1"], () => require("./secretsmanagerInstanceRoleBindingV1")); + +export { SecretsmanagerSecretGroupRoleBindingV1Args, SecretsmanagerSecretGroupRoleBindingV1State } from "./secretsmanagerSecretGroupRoleBindingV1"; +export type SecretsmanagerSecretGroupRoleBindingV1 = import("./secretsmanagerSecretGroupRoleBindingV1").SecretsmanagerSecretGroupRoleBindingV1; +export const SecretsmanagerSecretGroupRoleBindingV1: typeof import("./secretsmanagerSecretGroupRoleBindingV1").SecretsmanagerSecretGroupRoleBindingV1 = null as any; +utilities.lazyLoad(exports, ["SecretsmanagerSecretGroupRoleBindingV1"], () => require("./secretsmanagerSecretGroupRoleBindingV1")); + export { SecretsmanagerUserArgs, SecretsmanagerUserState } from "./secretsmanagerUser"; export type SecretsmanagerUser = import("./secretsmanagerUser").SecretsmanagerUser; export const SecretsmanagerUser: typeof import("./secretsmanagerUser").SecretsmanagerUser = null as any; @@ -818,6 +863,11 @@ export type SfsExportPolicy = import("./sfsExportPolicy").SfsExportPolicy; export const SfsExportPolicy: typeof import("./sfsExportPolicy").SfsExportPolicy = null as any; utilities.lazyLoad(exports, ["SfsExportPolicy"], () => require("./sfsExportPolicy")); +export { SfsProjectLockArgs, SfsProjectLockState } from "./sfsProjectLock"; +export type SfsProjectLock = import("./sfsProjectLock").SfsProjectLock; +export const SfsProjectLock: typeof import("./sfsProjectLock").SfsProjectLock = null as any; +utilities.lazyLoad(exports, ["SfsProjectLock"], () => require("./sfsProjectLock")); + export { SfsResourcePoolArgs, SfsResourcePoolState } from "./sfsResourcePool"; export type SfsResourcePool = import("./sfsResourcePool").SfsResourcePool; export const SfsResourcePool: typeof import("./sfsResourcePool").SfsResourcePool = null as any; @@ -873,8 +923,12 @@ const _module = { return new AlbCertificate(name, undefined, { urn }) case "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": return new ApplicationLoadBalancer(name, undefined, { urn }) + case "stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole": + return new AuthorizationFolderCustomRole(name, undefined, { urn }) case "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": return new AuthorizationFolderRoleAssignment(name, undefined, { urn }) + case "stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole": + return new AuthorizationOrganizationCustomRole(name, undefined, { urn }) case "stackit:index/authorizationOrganizationRoleAssignment:AuthorizationOrganizationRoleAssignment": return new AuthorizationOrganizationRoleAssignment(name, undefined, { urn }) case "stackit:index/authorizationProjectCustomRole:AuthorizationProjectCustomRole": @@ -995,6 +1049,10 @@ const _module = { return new ScfOrganizationManager(name, undefined, { urn }) case "stackit:index/secretsmanagerInstance:SecretsmanagerInstance": return new SecretsmanagerInstance(name, undefined, { urn }) + case "stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1": + return new SecretsmanagerInstanceRoleBindingV1(name, undefined, { urn }) + case "stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1": + return new SecretsmanagerSecretGroupRoleBindingV1(name, undefined, { urn }) case "stackit:index/secretsmanagerUser:SecretsmanagerUser": return new SecretsmanagerUser(name, undefined, { urn }) case "stackit:index/securityGroup:SecurityGroup": @@ -1023,6 +1081,8 @@ const _module = { return new ServiceAccountKey(name, undefined, { urn }) case "stackit:index/sfsExportPolicy:SfsExportPolicy": return new SfsExportPolicy(name, undefined, { urn }) + case "stackit:index/sfsProjectLock:SfsProjectLock": + return new SfsProjectLock(name, undefined, { urn }) case "stackit:index/sfsResourcePool:SfsResourcePool": return new SfsResourcePool(name, undefined, { urn }) case "stackit:index/sfsShare:SfsShare": @@ -1045,7 +1105,9 @@ const _module = { pulumi.runtime.registerResourceModule("stackit", "index/affinityGroup", _module) pulumi.runtime.registerResourceModule("stackit", "index/albCertificate", _module) pulumi.runtime.registerResourceModule("stackit", "index/applicationLoadBalancer", _module) +pulumi.runtime.registerResourceModule("stackit", "index/authorizationFolderCustomRole", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationFolderRoleAssignment", _module) +pulumi.runtime.registerResourceModule("stackit", "index/authorizationOrganizationCustomRole", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationOrganizationRoleAssignment", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationProjectCustomRole", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationProjectRoleAssignment", _module) @@ -1106,6 +1168,8 @@ pulumi.runtime.registerResourceModule("stackit", "index/routingTableRoute", _mod pulumi.runtime.registerResourceModule("stackit", "index/scfOrganization", _module) pulumi.runtime.registerResourceModule("stackit", "index/scfOrganizationManager", _module) pulumi.runtime.registerResourceModule("stackit", "index/secretsmanagerInstance", _module) +pulumi.runtime.registerResourceModule("stackit", "index/secretsmanagerInstanceRoleBindingV1", _module) +pulumi.runtime.registerResourceModule("stackit", "index/secretsmanagerSecretGroupRoleBindingV1", _module) pulumi.runtime.registerResourceModule("stackit", "index/secretsmanagerUser", _module) pulumi.runtime.registerResourceModule("stackit", "index/securityGroup", _module) pulumi.runtime.registerResourceModule("stackit", "index/securityGroupRule", _module) @@ -1120,6 +1184,7 @@ pulumi.runtime.registerResourceModule("stackit", "index/serverVolumeAttach", _mo pulumi.runtime.registerResourceModule("stackit", "index/serviceAccount", _module) pulumi.runtime.registerResourceModule("stackit", "index/serviceAccountKey", _module) pulumi.runtime.registerResourceModule("stackit", "index/sfsExportPolicy", _module) +pulumi.runtime.registerResourceModule("stackit", "index/sfsProjectLock", _module) pulumi.runtime.registerResourceModule("stackit", "index/sfsResourcePool", _module) pulumi.runtime.registerResourceModule("stackit", "index/sfsShare", _module) pulumi.runtime.registerResourceModule("stackit", "index/skeCluster", _module) diff --git a/sdk/nodejs/objectstorageCredentialsGroup.ts b/sdk/nodejs/objectstorageCredentialsGroup.ts index ab405ae..efff9c7 100644 --- a/sdk/nodejs/objectstorageCredentialsGroup.ts +++ b/sdk/nodejs/objectstorageCredentialsGroup.ts @@ -56,7 +56,7 @@ export class ObjectstorageCredentialsGroup extends pulumi.CustomResource { /** * Credentials group uniform resource name (URN) */ - declare public /*out*/ readonly urn: pulumi.Output; + declare public /*out*/ readonly stackitUrn: pulumi.Output; /** * Create a ObjectstorageCredentialsGroup resource with the given unique name, arguments, and options. @@ -75,7 +75,7 @@ export class ObjectstorageCredentialsGroup extends pulumi.CustomResource { resourceInputs["name"] = state?.name; resourceInputs["projectId"] = state?.projectId; resourceInputs["region"] = state?.region; - resourceInputs["urn"] = state?.urn; + resourceInputs["stackitUrn"] = state?.stackitUrn; } else { const args = argsOrState as ObjectstorageCredentialsGroupArgs | undefined; if (args?.projectId === undefined && !opts.urn) { @@ -85,7 +85,7 @@ export class ObjectstorageCredentialsGroup extends pulumi.CustomResource { resourceInputs["projectId"] = args?.projectId; resourceInputs["region"] = args?.region; resourceInputs["credentialsGroupId"] = undefined /*out*/; - resourceInputs["urn"] = undefined /*out*/; + resourceInputs["stackitUrn"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(ObjectstorageCredentialsGroup.__pulumiType, name, resourceInputs, opts); @@ -115,7 +115,7 @@ export interface ObjectstorageCredentialsGroupState { /** * Credentials group uniform resource name (URN) */ - urn?: pulumi.Input; + stackitUrn?: pulumi.Input; } /** diff --git a/sdk/nodejs/secretsmanagerInstanceRoleBindingV1.ts b/sdk/nodejs/secretsmanagerInstanceRoleBindingV1.ts new file mode 100644 index 0000000..43a6b14 --- /dev/null +++ b/sdk/nodejs/secretsmanagerInstanceRoleBindingV1.ts @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * IAM role binding resource schema. + * + * > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + * + * ## Import + */ +export class SecretsmanagerInstanceRoleBindingV1 extends pulumi.CustomResource { + /** + * Get an existing SecretsmanagerInstanceRoleBindingV1 resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: SecretsmanagerInstanceRoleBindingV1State, opts?: pulumi.CustomResourceOptions): SecretsmanagerInstanceRoleBindingV1 { + return new SecretsmanagerInstanceRoleBindingV1(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1'; + + /** + * Returns true if the given object is an instance of SecretsmanagerInstanceRoleBindingV1. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is SecretsmanagerInstanceRoleBindingV1 { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === SecretsmanagerInstanceRoleBindingV1.__pulumiType; + } + + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + /** + * The identifier of the resource to apply this role binding to. + */ + declare public readonly resourceId: pulumi.Output; + /** + * A valid role defined for the resource. + */ + declare public readonly role: pulumi.Output; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + declare public readonly subject: pulumi.Output; + + /** + * Create a SecretsmanagerInstanceRoleBindingV1 resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SecretsmanagerInstanceRoleBindingV1Args, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SecretsmanagerInstanceRoleBindingV1Args | SecretsmanagerInstanceRoleBindingV1State, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SecretsmanagerInstanceRoleBindingV1State | undefined; + resourceInputs["region"] = state?.region; + resourceInputs["resourceId"] = state?.resourceId; + resourceInputs["role"] = state?.role; + resourceInputs["subject"] = state?.subject; + } else { + const args = argsOrState as SecretsmanagerInstanceRoleBindingV1Args | undefined; + if (args?.resourceId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceId'"); + } + if (args?.role === undefined && !opts.urn) { + throw new Error("Missing required property 'role'"); + } + if (args?.subject === undefined && !opts.urn) { + throw new Error("Missing required property 'subject'"); + } + resourceInputs["region"] = args?.region; + resourceInputs["resourceId"] = args?.resourceId; + resourceInputs["role"] = args?.role; + resourceInputs["subject"] = args?.subject; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(SecretsmanagerInstanceRoleBindingV1.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering SecretsmanagerInstanceRoleBindingV1 resources. + */ +export interface SecretsmanagerInstanceRoleBindingV1State { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to apply this role binding to. + */ + resourceId?: pulumi.Input; + /** + * A valid role defined for the resource. + */ + role?: pulumi.Input; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject?: pulumi.Input; +} + +/** + * The set of arguments for constructing a SecretsmanagerInstanceRoleBindingV1 resource. + */ +export interface SecretsmanagerInstanceRoleBindingV1Args { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to apply this role binding to. + */ + resourceId: pulumi.Input; + /** + * A valid role defined for the resource. + */ + role: pulumi.Input; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject: pulumi.Input; +} diff --git a/sdk/nodejs/secretsmanagerSecretGroupRoleBindingV1.ts b/sdk/nodejs/secretsmanagerSecretGroupRoleBindingV1.ts new file mode 100644 index 0000000..ccaa700 --- /dev/null +++ b/sdk/nodejs/secretsmanagerSecretGroupRoleBindingV1.ts @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * IAM role binding resource schema. + * + * > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + * + * ## Example Usage + * + * ## Import + */ +export class SecretsmanagerSecretGroupRoleBindingV1 extends pulumi.CustomResource { + /** + * Get an existing SecretsmanagerSecretGroupRoleBindingV1 resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: SecretsmanagerSecretGroupRoleBindingV1State, opts?: pulumi.CustomResourceOptions): SecretsmanagerSecretGroupRoleBindingV1 { + return new SecretsmanagerSecretGroupRoleBindingV1(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1'; + + /** + * Returns true if the given object is an instance of SecretsmanagerSecretGroupRoleBindingV1. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is SecretsmanagerSecretGroupRoleBindingV1 { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === SecretsmanagerSecretGroupRoleBindingV1.__pulumiType; + } + + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + /** + * The identifier of the resource to apply this role binding to. + */ + declare public readonly resourceId: pulumi.Output; + /** + * A valid role defined for the resource. + */ + declare public readonly role: pulumi.Output; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + declare public readonly subject: pulumi.Output; + + /** + * Create a SecretsmanagerSecretGroupRoleBindingV1 resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SecretsmanagerSecretGroupRoleBindingV1Args, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SecretsmanagerSecretGroupRoleBindingV1Args | SecretsmanagerSecretGroupRoleBindingV1State, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SecretsmanagerSecretGroupRoleBindingV1State | undefined; + resourceInputs["region"] = state?.region; + resourceInputs["resourceId"] = state?.resourceId; + resourceInputs["role"] = state?.role; + resourceInputs["subject"] = state?.subject; + } else { + const args = argsOrState as SecretsmanagerSecretGroupRoleBindingV1Args | undefined; + if (args?.resourceId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceId'"); + } + if (args?.role === undefined && !opts.urn) { + throw new Error("Missing required property 'role'"); + } + if (args?.subject === undefined && !opts.urn) { + throw new Error("Missing required property 'subject'"); + } + resourceInputs["region"] = args?.region; + resourceInputs["resourceId"] = args?.resourceId; + resourceInputs["role"] = args?.role; + resourceInputs["subject"] = args?.subject; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(SecretsmanagerSecretGroupRoleBindingV1.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering SecretsmanagerSecretGroupRoleBindingV1 resources. + */ +export interface SecretsmanagerSecretGroupRoleBindingV1State { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to apply this role binding to. + */ + resourceId?: pulumi.Input; + /** + * A valid role defined for the resource. + */ + role?: pulumi.Input; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject?: pulumi.Input; +} + +/** + * The set of arguments for constructing a SecretsmanagerSecretGroupRoleBindingV1 resource. + */ +export interface SecretsmanagerSecretGroupRoleBindingV1Args { + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The identifier of the resource to apply this role binding to. + */ + resourceId: pulumi.Input; + /** + * A valid role defined for the resource. + */ + role: pulumi.Input; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject: pulumi.Input; +} diff --git a/sdk/nodejs/sfsProjectLock.ts b/sdk/nodejs/sfsProjectLock.ts new file mode 100644 index 0000000..165f1ae --- /dev/null +++ b/sdk/nodejs/sfsProjectLock.ts @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + * + * ## Example Usage + */ +export class SfsProjectLock extends pulumi.CustomResource { + /** + * Get an existing SfsProjectLock resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: SfsProjectLockState, opts?: pulumi.CustomResourceOptions): SfsProjectLock { + return new SfsProjectLock(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/sfsProjectLock:SfsProjectLock'; + + /** + * Returns true if the given object is an instance of SfsProjectLock. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is SfsProjectLock { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === SfsProjectLock.__pulumiType; + } + + /** + * ID of the lock. + */ + declare public /*out*/ readonly lockId: pulumi.Output; + /** + * STACKIT Project ID to which the project lock is associated. + */ + declare public readonly projectId: pulumi.Output; + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + + /** + * Create a SfsProjectLock resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SfsProjectLockArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SfsProjectLockArgs | SfsProjectLockState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SfsProjectLockState | undefined; + resourceInputs["lockId"] = state?.lockId; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["region"] = state?.region; + } else { + const args = argsOrState as SfsProjectLockArgs | undefined; + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["projectId"] = args?.projectId; + resourceInputs["region"] = args?.region; + resourceInputs["lockId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(SfsProjectLock.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering SfsProjectLock resources. + */ +export interface SfsProjectLockState { + /** + * ID of the lock. + */ + lockId?: pulumi.Input; + /** + * STACKIT Project ID to which the project lock is associated. + */ + projectId?: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} + +/** + * The set of arguments for constructing a SfsProjectLock resource. + */ +export interface SfsProjectLockArgs { + /** + * STACKIT Project ID to which the project lock is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/sfsShare.ts b/sdk/nodejs/sfsShare.ts index 6c6ec6a..c272c93 100644 --- a/sdk/nodejs/sfsShare.ts +++ b/sdk/nodejs/sfsShare.ts @@ -45,7 +45,7 @@ export class SfsShare extends pulumi.CustomResource { * clients with IPs matching the IP ACL of the Resource Pool hosting this Share. * You can also assign a Share Export Policy after creating the Share */ - declare public readonly exportPolicy: pulumi.Output; + declare public readonly exportPolicy: pulumi.Output; /** * Mount path of the Share, used to mount the Share */ @@ -100,9 +100,6 @@ export class SfsShare extends pulumi.CustomResource { resourceInputs["spaceHardLimitGigabytes"] = state?.spaceHardLimitGigabytes; } else { const args = argsOrState as SfsShareArgs | undefined; - if (args?.exportPolicy === undefined && !opts.urn) { - throw new Error("Missing required property 'exportPolicy'"); - } if (args?.projectId === undefined && !opts.urn) { throw new Error("Missing required property 'projectId'"); } @@ -179,7 +176,7 @@ export interface SfsShareArgs { * clients with IPs matching the IP ACL of the Resource Pool hosting this Share. * You can also assign a Share Export Policy after creating the Share */ - exportPolicy: pulumi.Input; + exportPolicy?: pulumi.Input; /** * Name of the share. */ diff --git a/sdk/nodejs/skeCluster.ts b/sdk/nodejs/skeCluster.ts index 85a78ef..95eb826 100644 --- a/sdk/nodejs/skeCluster.ts +++ b/sdk/nodejs/skeCluster.ts @@ -75,6 +75,7 @@ export class SkeCluster extends pulumi.CustomResource { declare public readonly network: pulumi.Output; /** * One or more `nodePool` block as defined below. + * To keep your Terraform plans clean and readable, always append new node pools to the end of the list. */ declare public readonly nodePools: pulumi.Output; /** @@ -179,6 +180,7 @@ export interface SkeClusterState { network?: pulumi.Input; /** * One or more `nodePool` block as defined below. + * To keep your Terraform plans clean and readable, always append new node pools to the end of the list. */ nodePools?: pulumi.Input[]>; /** @@ -225,6 +227,7 @@ export interface SkeClusterArgs { network?: pulumi.Input; /** * One or more `nodePool` block as defined below. + * To keep your Terraform plans clean and readable, always append new node pools to the end of the list. */ nodePools: pulumi.Input[]>; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index fd95553..248dd3a 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -22,7 +22,9 @@ "affinityGroup.ts", "albCertificate.ts", "applicationLoadBalancer.ts", + "authorizationFolderCustomRole.ts", "authorizationFolderRoleAssignment.ts", + "authorizationOrganizationCustomRole.ts", "authorizationOrganizationRoleAssignment.ts", "authorizationProjectCustomRole.ts", "authorizationProjectRoleAssignment.ts", @@ -39,6 +41,8 @@ "getAffinityGroup.ts", "getAlbCertificate.ts", "getApplicationLoadBalancer.ts", + "getAuthorizationFolderCustomRole.ts", + "getAuthorizationOrganizationCustomRole.ts", "getAuthorizationProjectCustomRole.ts", "getCdnCustomDomain.ts", "getCdnDistribution.ts", @@ -98,6 +102,8 @@ "getScfOrganizationManager.ts", "getScfPlatform.ts", "getSecretsmanagerInstance.ts", + "getSecretsmanagerInstanceRoleBindingsV1.ts", + "getSecretsmanagerSecretGroupRoleBindingsV1.ts", "getSecretsmanagerUser.ts", "getSecurityGroup.ts", "getSecurityGroupRule.ts", @@ -111,6 +117,7 @@ "getServiceAccount.ts", "getServiceAccounts.ts", "getSfsExportPolicy.ts", + "getSfsProjectLock.ts", "getSfsResourcePool.ts", "getSfsResourcePoolSnapshot.ts", "getSfsShare.ts", @@ -171,6 +178,8 @@ "scfOrganization.ts", "scfOrganizationManager.ts", "secretsmanagerInstance.ts", + "secretsmanagerInstanceRoleBindingV1.ts", + "secretsmanagerSecretGroupRoleBindingV1.ts", "secretsmanagerUser.ts", "securityGroup.ts", "securityGroupRule.ts", @@ -185,6 +194,7 @@ "serviceAccount.ts", "serviceAccountKey.ts", "sfsExportPolicy.ts", + "sfsProjectLock.ts", "sfsResourcePool.ts", "sfsShare.ts", "skeCluster.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 0d73c7b..83ac32e 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -350,6 +350,10 @@ export interface CdnDistributionConfig { * Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. */ optimizer?: pulumi.Input; + /** + * A wrapper for a list of redirect rules that allows for redirect settings on a distribution + */ + redirects?: pulumi.Input; /** * The configured regions where content will be hosted */ @@ -402,6 +406,51 @@ export interface CdnDistributionConfigOptimizer { enabled?: pulumi.Input; } +export interface CdnDistributionConfigRedirects { + /** + * A list of redirect rules. The order of rules matters for evaluation + */ + rules: pulumi.Input[]>; +} + +export interface CdnDistributionConfigRedirectsRule { + /** + * An optional description for the redirect rule + */ + description?: pulumi.Input; + /** + * A toggle to enable or disable the redirect rule. Default to true + */ + enabled?: pulumi.Input; + /** + * A list of matchers that define when this rule should apply. At least one matcher is required + */ + matchers: pulumi.Input[]>; + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + ruleMatchCondition?: pulumi.Input; + /** + * The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + */ + statusCode: pulumi.Input; + /** + * The target URL to redirect to. Must be a valid URI + */ + targetUrl: pulumi.Input; +} + +export interface CdnDistributionConfigRedirectsRuleMatcher { + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + valueMatchCondition?: pulumi.Input; + /** + * A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + */ + values: pulumi.Input[]>; +} + export interface CdnDistributionDomain { /** * List of domain errors @@ -1727,11 +1776,11 @@ export interface SkeClusterMaintenance { /** * Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. */ - end: pulumi.Input; + end?: pulumi.Input; /** * Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. */ - start: pulumi.Input; + start?: pulumi.Input; } export interface SkeClusterNetwork { diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 71bc339..22f8758 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -350,6 +350,10 @@ export interface CdnDistributionConfig { * Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. */ optimizer: outputs.CdnDistributionConfigOptimizer; + /** + * A wrapper for a list of redirect rules that allows for redirect settings on a distribution + */ + redirects?: outputs.CdnDistributionConfigRedirects; /** * The configured regions where content will be hosted */ @@ -402,6 +406,51 @@ export interface CdnDistributionConfigOptimizer { enabled: boolean; } +export interface CdnDistributionConfigRedirects { + /** + * A list of redirect rules. The order of rules matters for evaluation + */ + rules: outputs.CdnDistributionConfigRedirectsRule[]; +} + +export interface CdnDistributionConfigRedirectsRule { + /** + * An optional description for the redirect rule + */ + description: string; + /** + * A toggle to enable or disable the redirect rule. Default to true + */ + enabled: boolean; + /** + * A list of matchers that define when this rule should apply. At least one matcher is required + */ + matchers: outputs.CdnDistributionConfigRedirectsRuleMatcher[]; + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + ruleMatchCondition: string; + /** + * The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + */ + statusCode: number; + /** + * The target URL to redirect to. Must be a valid URI + */ + targetUrl: string; +} + +export interface CdnDistributionConfigRedirectsRuleMatcher { + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + valueMatchCondition: string; + /** + * A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + */ + values: string[]; +} + export interface CdnDistributionDomain { /** * List of domain errors @@ -796,6 +845,10 @@ export interface GetCdnDistributionConfig { * Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. */ optimizer: outputs.GetCdnDistributionConfigOptimizer; + /** + * A wrapper for a list of redirect rules that allows for redirect settings on a distribution + */ + redirects: outputs.GetCdnDistributionConfigRedirects; /** * The configured regions where content will be hosted */ @@ -833,6 +886,51 @@ export interface GetCdnDistributionConfigOptimizer { enabled: boolean; } +export interface GetCdnDistributionConfigRedirects { + /** + * A list of redirect rules. The order of rules matters for evaluation + */ + rules: outputs.GetCdnDistributionConfigRedirectsRule[]; +} + +export interface GetCdnDistributionConfigRedirectsRule { + /** + * An optional description for the redirect rule + */ + description: string; + /** + * A toggle to enable or disable the redirect rule. Default to true + */ + enabled: boolean; + /** + * A list of matchers that define when this rule should apply. At least one matcher is required + */ + matchers: outputs.GetCdnDistributionConfigRedirectsRuleMatcher[]; + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + ruleMatchCondition: string; + /** + * The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + */ + statusCode: number; + /** + * The target URL to redirect to. Must be a valid URI + */ + targetUrl: string; +} + +export interface GetCdnDistributionConfigRedirectsRuleMatcher { + /** + * Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + */ + valueMatchCondition: string; + /** + * A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + */ + values: string[]; +} + export interface GetCdnDistributionDomain { /** * List of domain errors @@ -1198,7 +1296,7 @@ export interface GetLoadbalancerTargetPool { /** * Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. */ - sessionPersistence?: outputs.GetLoadbalancerTargetPoolSessionPersistence; + sessionPersistence: outputs.GetLoadbalancerTargetPoolSessionPersistence; /** * Identical port number where each target listens for traffic. */ @@ -1236,7 +1334,7 @@ export interface GetLoadbalancerTargetPoolSessionPersistence { /** * If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. */ - useSourceIpAddress?: boolean; + useSourceIpAddress: boolean; } export interface GetLoadbalancerTargetPoolTarget { @@ -2092,6 +2190,28 @@ export interface GetSecretsmanagerInstanceKmsKey { serviceAccountEmail: string; } +export interface GetSecretsmanagerInstanceRoleBindingsV1RoleBinding { + /** + * A valid role defined for the resource. + */ + role: string; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject: string; +} + +export interface GetSecretsmanagerSecretGroupRoleBindingsV1RoleBinding { + /** + * A valid role defined for the resource. + */ + role: string; + /** + * Identifier of user, service account or client. Usually email address or name in case of clients. + */ + subject: string; +} + export interface GetSecurityGroupRuleIcmpParameters { /** * ICMP code. Can be set if the protocol is ICMP. @@ -2722,7 +2842,7 @@ export interface LoadbalancerTargetPool { /** * Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. */ - sessionPersistence?: outputs.LoadbalancerTargetPoolSessionPersistence; + sessionPersistence: outputs.LoadbalancerTargetPoolSessionPersistence; /** * Identical port number where each target listens for traffic. */ @@ -2760,7 +2880,7 @@ export interface LoadbalancerTargetPoolSessionPersistence { /** * If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. */ - useSourceIpAddress?: boolean; + useSourceIpAddress: boolean; } export interface LoadbalancerTargetPoolTarget { diff --git a/sdk/python/pulumi_stackit/__init__.py b/sdk/python/pulumi_stackit/__init__.py index 42e15af..09998e4 100644 --- a/sdk/python/pulumi_stackit/__init__.py +++ b/sdk/python/pulumi_stackit/__init__.py @@ -9,7 +9,9 @@ from .affinity_group import * from .alb_certificate import * from .application_load_balancer import * +from .authorization_folder_custom_role import * from .authorization_folder_role_assignment import * +from .authorization_organization_custom_role import * from .authorization_organization_role_assignment import * from .authorization_project_custom_role import * from .authorization_project_role_assignment import * @@ -24,6 +26,8 @@ from .get_affinity_group import * from .get_alb_certificate import * from .get_application_load_balancer import * +from .get_authorization_folder_custom_role import * +from .get_authorization_organization_custom_role import * from .get_authorization_project_custom_role import * from .get_cdn_custom_domain import * from .get_cdn_distribution import * @@ -83,6 +87,8 @@ from .get_scf_organization_manager import * from .get_scf_platform import * from .get_secretsmanager_instance import * +from .get_secretsmanager_instance_role_bindings_v1 import * +from .get_secretsmanager_secret_group_role_bindings_v1 import * from .get_secretsmanager_user import * from .get_security_group import * from .get_security_group_rule import * @@ -96,6 +102,7 @@ from .get_service_account import * from .get_service_accounts import * from .get_sfs_export_policy import * +from .get_sfs_project_lock import * from .get_sfs_resource_pool import * from .get_sfs_resource_pool_snapshot import * from .get_sfs_share import * @@ -155,6 +162,8 @@ from .scf_organization import * from .scf_organization_manager import * from .secretsmanager_instance import * +from .secretsmanager_instance_role_binding_v1 import * +from .secretsmanager_secret_group_role_binding_v1 import * from .secretsmanager_user import * from .security_group import * from .security_group_rule import * @@ -169,6 +178,7 @@ from .service_account import * from .service_account_key import * from .sfs_export_policy import * +from .sfs_project_lock import * from .sfs_resource_pool import * from .sfs_share import * from .ske_cluster import * @@ -213,6 +223,14 @@ "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": "ApplicationLoadBalancer" } }, + { + "pkg": "stackit", + "mod": "index/authorizationFolderCustomRole", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole": "AuthorizationFolderCustomRole" + } + }, { "pkg": "stackit", "mod": "index/authorizationFolderRoleAssignment", @@ -221,6 +239,14 @@ "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": "AuthorizationFolderRoleAssignment" } }, + { + "pkg": "stackit", + "mod": "index/authorizationOrganizationCustomRole", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole": "AuthorizationOrganizationCustomRole" + } + }, { "pkg": "stackit", "mod": "index/authorizationOrganizationRoleAssignment", @@ -701,6 +727,22 @@ "stackit:index/secretsmanagerInstance:SecretsmanagerInstance": "SecretsmanagerInstance" } }, + { + "pkg": "stackit", + "mod": "index/secretsmanagerInstanceRoleBindingV1", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1": "SecretsmanagerInstanceRoleBindingV1" + } + }, + { + "pkg": "stackit", + "mod": "index/secretsmanagerSecretGroupRoleBindingV1", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1": "SecretsmanagerSecretGroupRoleBindingV1" + } + }, { "pkg": "stackit", "mod": "index/secretsmanagerUser", @@ -813,6 +855,14 @@ "stackit:index/sfsExportPolicy:SfsExportPolicy": "SfsExportPolicy" } }, + { + "pkg": "stackit", + "mod": "index/sfsProjectLock", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/sfsProjectLock:SfsProjectLock": "SfsProjectLock" + } + }, { "pkg": "stackit", "mod": "index/sfsResourcePool", diff --git a/sdk/python/pulumi_stackit/_inputs.py b/sdk/python/pulumi_stackit/_inputs.py index 33a1c25..5c3d0e1 100644 --- a/sdk/python/pulumi_stackit/_inputs.py +++ b/sdk/python/pulumi_stackit/_inputs.py @@ -73,6 +73,12 @@ 'CdnDistributionConfigBackendCredentialsArgsDict', 'CdnDistributionConfigOptimizerArgs', 'CdnDistributionConfigOptimizerArgsDict', + 'CdnDistributionConfigRedirectsArgs', + 'CdnDistributionConfigRedirectsArgsDict', + 'CdnDistributionConfigRedirectsRuleArgs', + 'CdnDistributionConfigRedirectsRuleArgsDict', + 'CdnDistributionConfigRedirectsRuleMatcherArgs', + 'CdnDistributionConfigRedirectsRuleMatcherArgsDict', 'CdnDistributionDomainArgs', 'CdnDistributionDomainArgsDict', 'DnsRecordSetTimeoutsArgs', @@ -1728,6 +1734,10 @@ class CdnDistributionConfigArgsDict(TypedDict): """ Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. """ + redirects: NotRequired[pulumi.Input['CdnDistributionConfigRedirectsArgsDict']] + """ + A wrapper for a list of redirect rules that allows for redirect settings on a distribution + """ @pulumi.input_type class CdnDistributionConfigArgs: @@ -1735,12 +1745,14 @@ def __init__(__self__, *, backend: pulumi.Input['CdnDistributionConfigBackendArgs'], regions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], blocked_countries: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, - optimizer: Optional[pulumi.Input['CdnDistributionConfigOptimizerArgs']] = None): + optimizer: Optional[pulumi.Input['CdnDistributionConfigOptimizerArgs']] = None, + redirects: Optional[pulumi.Input['CdnDistributionConfigRedirectsArgs']] = None): """ :param pulumi.Input['CdnDistributionConfigBackendArgs'] backend: The configured backend for the distribution :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] regions: The configured regions where content will be hosted :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] blocked_countries: The configured countries where distribution of content is blocked :param pulumi.Input['CdnDistributionConfigOptimizerArgs'] optimizer: Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. + :param pulumi.Input['CdnDistributionConfigRedirectsArgs'] redirects: A wrapper for a list of redirect rules that allows for redirect settings on a distribution """ pulumi.set(__self__, "backend", backend) pulumi.set(__self__, "regions", regions) @@ -1748,6 +1760,8 @@ def __init__(__self__, *, pulumi.set(__self__, "blocked_countries", blocked_countries) if optimizer is not None: pulumi.set(__self__, "optimizer", optimizer) + if redirects is not None: + pulumi.set(__self__, "redirects", redirects) @_builtins.property @pulumi.getter @@ -1797,6 +1811,18 @@ def optimizer(self) -> Optional[pulumi.Input['CdnDistributionConfigOptimizerArgs def optimizer(self, value: Optional[pulumi.Input['CdnDistributionConfigOptimizerArgs']]): pulumi.set(self, "optimizer", value) + @_builtins.property + @pulumi.getter + def redirects(self) -> Optional[pulumi.Input['CdnDistributionConfigRedirectsArgs']]: + """ + A wrapper for a list of redirect rules that allows for redirect settings on a distribution + """ + return pulumi.get(self, "redirects") + + @redirects.setter + def redirects(self, value: Optional[pulumi.Input['CdnDistributionConfigRedirectsArgs']]): + pulumi.set(self, "redirects", value) + class CdnDistributionConfigBackendArgsDict(TypedDict): type: pulumi.Input[_builtins.str] @@ -2013,6 +2039,208 @@ def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]): pulumi.set(self, "enabled", value) +class CdnDistributionConfigRedirectsArgsDict(TypedDict): + rules: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleArgsDict']]] + """ + A list of redirect rules. The order of rules matters for evaluation + """ + +@pulumi.input_type +class CdnDistributionConfigRedirectsArgs: + def __init__(__self__, *, + rules: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleArgs']]] rules: A list of redirect rules. The order of rules matters for evaluation + """ + pulumi.set(__self__, "rules", rules) + + @_builtins.property + @pulumi.getter + def rules(self) -> pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleArgs']]]: + """ + A list of redirect rules. The order of rules matters for evaluation + """ + return pulumi.get(self, "rules") + + @rules.setter + def rules(self, value: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleArgs']]]): + pulumi.set(self, "rules", value) + + +class CdnDistributionConfigRedirectsRuleArgsDict(TypedDict): + matchers: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleMatcherArgsDict']]] + """ + A list of matchers that define when this rule should apply. At least one matcher is required + """ + status_code: pulumi.Input[_builtins.int] + """ + The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + """ + target_url: pulumi.Input[_builtins.str] + """ + The target URL to redirect to. Must be a valid URI + """ + description: NotRequired[pulumi.Input[_builtins.str]] + """ + An optional description for the redirect rule + """ + enabled: NotRequired[pulumi.Input[_builtins.bool]] + """ + A toggle to enable or disable the redirect rule. Default to true + """ + rule_match_condition: NotRequired[pulumi.Input[_builtins.str]] + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + +@pulumi.input_type +class CdnDistributionConfigRedirectsRuleArgs: + def __init__(__self__, *, + matchers: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleMatcherArgs']]], + status_code: pulumi.Input[_builtins.int], + target_url: pulumi.Input[_builtins.str], + description: Optional[pulumi.Input[_builtins.str]] = None, + enabled: Optional[pulumi.Input[_builtins.bool]] = None, + rule_match_condition: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleMatcherArgs']]] matchers: A list of matchers that define when this rule should apply. At least one matcher is required + :param pulumi.Input[_builtins.int] status_code: The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + :param pulumi.Input[_builtins.str] target_url: The target URL to redirect to. Must be a valid URI + :param pulumi.Input[_builtins.str] description: An optional description for the redirect rule + :param pulumi.Input[_builtins.bool] enabled: A toggle to enable or disable the redirect rule. Default to true + :param pulumi.Input[_builtins.str] rule_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + pulumi.set(__self__, "matchers", matchers) + pulumi.set(__self__, "status_code", status_code) + pulumi.set(__self__, "target_url", target_url) + if description is not None: + pulumi.set(__self__, "description", description) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if rule_match_condition is not None: + pulumi.set(__self__, "rule_match_condition", rule_match_condition) + + @_builtins.property + @pulumi.getter + def matchers(self) -> pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleMatcherArgs']]]: + """ + A list of matchers that define when this rule should apply. At least one matcher is required + """ + return pulumi.get(self, "matchers") + + @matchers.setter + def matchers(self, value: pulumi.Input[Sequence[pulumi.Input['CdnDistributionConfigRedirectsRuleMatcherArgs']]]): + pulumi.set(self, "matchers", value) + + @_builtins.property + @pulumi.getter(name="statusCode") + def status_code(self) -> pulumi.Input[_builtins.int]: + """ + The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + """ + return pulumi.get(self, "status_code") + + @status_code.setter + def status_code(self, value: pulumi.Input[_builtins.int]): + pulumi.set(self, "status_code", value) + + @_builtins.property + @pulumi.getter(name="targetUrl") + def target_url(self) -> pulumi.Input[_builtins.str]: + """ + The target URL to redirect to. Must be a valid URI + """ + return pulumi.get(self, "target_url") + + @target_url.setter + def target_url(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "target_url", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + An optional description for the redirect rule + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + A toggle to enable or disable the redirect rule. Default to true + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "enabled", value) + + @_builtins.property + @pulumi.getter(name="ruleMatchCondition") + def rule_match_condition(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "rule_match_condition") + + @rule_match_condition.setter + def rule_match_condition(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "rule_match_condition", value) + + +class CdnDistributionConfigRedirectsRuleMatcherArgsDict(TypedDict): + values: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] + """ + A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + """ + value_match_condition: NotRequired[pulumi.Input[_builtins.str]] + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + +@pulumi.input_type +class CdnDistributionConfigRedirectsRuleMatcherArgs: + def __init__(__self__, *, + values: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], + value_match_condition: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + :param pulumi.Input[_builtins.str] value_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + pulumi.set(__self__, "values", values) + if value_match_condition is not None: + pulumi.set(__self__, "value_match_condition", value_match_condition) + + @_builtins.property + @pulumi.getter + def values(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + """ + return pulumi.get(self, "values") + + @values.setter + def values(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "values", value) + + @_builtins.property + @pulumi.getter(name="valueMatchCondition") + def value_match_condition(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "value_match_condition") + + @value_match_condition.setter + def value_match_condition(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "value_match_condition", value) + + class CdnDistributionDomainArgsDict(TypedDict): errors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] """ @@ -7892,14 +8120,6 @@ def timezone(self, value: Optional[pulumi.Input[_builtins.str]]): class SkeClusterMaintenanceArgsDict(TypedDict): - end: pulumi.Input[_builtins.str] - """ - Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ - start: pulumi.Input[_builtins.str] - """ - Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ enable_kubernetes_version_updates: NotRequired[pulumi.Input[_builtins.bool]] """ Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). @@ -7908,50 +8128,36 @@ class SkeClusterMaintenanceArgsDict(TypedDict): """ Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). """ + end: NotRequired[pulumi.Input[_builtins.str]] + """ + Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ + start: NotRequired[pulumi.Input[_builtins.str]] + """ + Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ @pulumi.input_type class SkeClusterMaintenanceArgs: def __init__(__self__, *, - end: pulumi.Input[_builtins.str], - start: pulumi.Input[_builtins.str], enable_kubernetes_version_updates: Optional[pulumi.Input[_builtins.bool]] = None, - enable_machine_image_version_updates: Optional[pulumi.Input[_builtins.bool]] = None): + enable_machine_image_version_updates: Optional[pulumi.Input[_builtins.bool]] = None, + end: Optional[pulumi.Input[_builtins.str]] = None, + start: Optional[pulumi.Input[_builtins.str]] = None): """ - :param pulumi.Input[_builtins.str] end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - :param pulumi.Input[_builtins.str] start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. :param pulumi.Input[_builtins.bool] enable_kubernetes_version_updates: Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). :param pulumi.Input[_builtins.bool] enable_machine_image_version_updates: Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + :param pulumi.Input[_builtins.str] end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + :param pulumi.Input[_builtins.str] start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) if enable_kubernetes_version_updates is not None: pulumi.set(__self__, "enable_kubernetes_version_updates", enable_kubernetes_version_updates) if enable_machine_image_version_updates is not None: pulumi.set(__self__, "enable_machine_image_version_updates", enable_machine_image_version_updates) - - @_builtins.property - @pulumi.getter - def end(self) -> pulumi.Input[_builtins.str]: - """ - Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ - return pulumi.get(self, "end") - - @end.setter - def end(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "end", value) - - @_builtins.property - @pulumi.getter - def start(self) -> pulumi.Input[_builtins.str]: - """ - Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ - return pulumi.get(self, "start") - - @start.setter - def start(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "start", value) + if end is not None: + pulumi.set(__self__, "end", end) + if start is not None: + pulumi.set(__self__, "start", start) @_builtins.property @pulumi.getter(name="enableKubernetesVersionUpdates") @@ -7977,6 +8183,30 @@ def enable_machine_image_version_updates(self) -> Optional[pulumi.Input[_builtin def enable_machine_image_version_updates(self, value: Optional[pulumi.Input[_builtins.bool]]): pulumi.set(self, "enable_machine_image_version_updates", value) + @_builtins.property + @pulumi.getter + def end(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ + return pulumi.get(self, "end") + + @end.setter + def end(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "end", value) + + @_builtins.property + @pulumi.getter + def start(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ + return pulumi.get(self, "start") + + @start.setter + def start(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "start", value) + class SkeClusterNetworkArgsDict(TypedDict): control_plane: NotRequired[pulumi.Input['SkeClusterNetworkControlPlaneArgsDict']] diff --git a/sdk/python/pulumi_stackit/authorization_folder_custom_role.py b/sdk/python/pulumi_stackit/authorization_folder_custom_role.py new file mode 100644 index 0000000..7f8038d --- /dev/null +++ b/sdk/python/pulumi_stackit/authorization_folder_custom_role.py @@ -0,0 +1,331 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['AuthorizationFolderCustomRoleArgs', 'AuthorizationFolderCustomRole'] + +@pulumi.input_type +class AuthorizationFolderCustomRoleArgs: + def __init__(__self__, *, + description: pulumi.Input[_builtins.str], + permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], + resource_id: pulumi.Input[_builtins.str], + name: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a AuthorizationFolderCustomRole resource. + + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] name: Name of the role + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "permissions", permissions) + pulumi.set(__self__, "resource_id", resource_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Input[_builtins.str]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Input[_builtins.str]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _AuthorizationFolderCustomRoleState: + def __init__(__self__, *, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering AuthorizationFolderCustomRole resources. + + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] role_id: The ID of the role. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if permissions is not None: + pulumi.set(__self__, "permissions", permissions) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if role_id is not None: + pulumi.set(__self__, "role_id", role_id) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + + @role_id.setter + def role_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "role_id", value) + + +@pulumi.type_token("stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole") +class AuthorizationFolderCustomRole(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + Custom Role resource schema. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AuthorizationFolderCustomRoleArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Custom Role resource schema. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param AuthorizationFolderCustomRoleArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AuthorizationFolderCustomRoleArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AuthorizationFolderCustomRoleArgs.__new__(AuthorizationFolderCustomRoleArgs) + + if description is None and not opts.urn: + raise TypeError("Missing required property 'description'") + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if permissions is None and not opts.urn: + raise TypeError("Missing required property 'permissions'") + __props__.__dict__["permissions"] = permissions + if resource_id is None and not opts.urn: + raise TypeError("Missing required property 'resource_id'") + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role_id"] = None + super(AuthorizationFolderCustomRole, __self__).__init__( + 'stackit:index/authorizationFolderCustomRole:AuthorizationFolderCustomRole', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'AuthorizationFolderCustomRole': + """ + Get an existing AuthorizationFolderCustomRole resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] role_id: The ID of the role. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AuthorizationFolderCustomRoleState.__new__(_AuthorizationFolderCustomRoleState) + + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["permissions"] = permissions + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role_id"] = role_id + return AuthorizationFolderCustomRole(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[_builtins.str]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Output[_builtins.str]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Output[Sequence[_builtins.str]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Output[_builtins.str]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + diff --git a/sdk/python/pulumi_stackit/authorization_organization_custom_role.py b/sdk/python/pulumi_stackit/authorization_organization_custom_role.py new file mode 100644 index 0000000..bce86cc --- /dev/null +++ b/sdk/python/pulumi_stackit/authorization_organization_custom_role.py @@ -0,0 +1,331 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['AuthorizationOrganizationCustomRoleArgs', 'AuthorizationOrganizationCustomRole'] + +@pulumi.input_type +class AuthorizationOrganizationCustomRoleArgs: + def __init__(__self__, *, + description: pulumi.Input[_builtins.str], + permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], + resource_id: pulumi.Input[_builtins.str], + name: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a AuthorizationOrganizationCustomRole resource. + + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] name: Name of the role + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "permissions", permissions) + pulumi.set(__self__, "resource_id", resource_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Input[_builtins.str]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Input[_builtins.str]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _AuthorizationOrganizationCustomRoleState: + def __init__(__self__, *, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering AuthorizationOrganizationCustomRole resources. + + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] role_id: The ID of the role. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if permissions is not None: + pulumi.set(__self__, "permissions", permissions) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if role_id is not None: + pulumi.set(__self__, "role_id", role_id) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + + @role_id.setter + def role_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "role_id", value) + + +@pulumi.type_token("stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole") +class AuthorizationOrganizationCustomRole(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + Custom Role resource schema. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AuthorizationOrganizationCustomRoleArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Custom Role resource schema. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param AuthorizationOrganizationCustomRoleArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AuthorizationOrganizationCustomRoleArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AuthorizationOrganizationCustomRoleArgs.__new__(AuthorizationOrganizationCustomRoleArgs) + + if description is None and not opts.urn: + raise TypeError("Missing required property 'description'") + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if permissions is None and not opts.urn: + raise TypeError("Missing required property 'permissions'") + __props__.__dict__["permissions"] = permissions + if resource_id is None and not opts.urn: + raise TypeError("Missing required property 'resource_id'") + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role_id"] = None + super(AuthorizationOrganizationCustomRole, __self__).__init__( + 'stackit:index/authorizationOrganizationCustomRole:AuthorizationOrganizationCustomRole', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'AuthorizationOrganizationCustomRole': + """ + Get an existing AuthorizationOrganizationCustomRole resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A human readable description of the role. + :param pulumi.Input[_builtins.str] name: Name of the role + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: Permissions for the role + :param pulumi.Input[_builtins.str] resource_id: Resource to add the custom role to. + :param pulumi.Input[_builtins.str] role_id: The ID of the role. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AuthorizationOrganizationCustomRoleState.__new__(_AuthorizationOrganizationCustomRoleState) + + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["permissions"] = permissions + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role_id"] = role_id + return AuthorizationOrganizationCustomRole(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[_builtins.str]: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Output[_builtins.str]: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Output[Sequence[_builtins.str]]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Output[_builtins.str]: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + diff --git a/sdk/python/pulumi_stackit/get_authorization_folder_custom_role.py b/sdk/python/pulumi_stackit/get_authorization_folder_custom_role.py new file mode 100644 index 0000000..067589c --- /dev/null +++ b/sdk/python/pulumi_stackit/get_authorization_folder_custom_role.py @@ -0,0 +1,160 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetAuthorizationFolderCustomRoleResult', + 'AwaitableGetAuthorizationFolderCustomRoleResult', + 'get_authorization_folder_custom_role', + 'get_authorization_folder_custom_role_output', +] + +@pulumi.output_type +class GetAuthorizationFolderCustomRoleResult: + """ + A collection of values returned by getAuthorizationFolderCustomRole. + """ + def __init__(__self__, description=None, id=None, name=None, permissions=None, resource_id=None, role_id=None): + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if permissions and not isinstance(permissions, list): + raise TypeError("Expected argument 'permissions' to be a list") + pulumi.set(__self__, "permissions", permissions) + if resource_id and not isinstance(resource_id, str): + raise TypeError("Expected argument 'resource_id' to be a str") + pulumi.set(__self__, "resource_id", resource_id) + if role_id and not isinstance(role_id, str): + raise TypeError("Expected argument 'role_id' to be a str") + pulumi.set(__self__, "role_id", role_id) + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def permissions(self) -> Sequence[_builtins.str]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> _builtins.str: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> _builtins.str: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + + +class AwaitableGetAuthorizationFolderCustomRoleResult(GetAuthorizationFolderCustomRoleResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAuthorizationFolderCustomRoleResult( + description=self.description, + id=self.id, + name=self.name, + permissions=self.permissions, + resource_id=self.resource_id, + role_id=self.role_id) + + +def get_authorization_folder_custom_role(resource_id: Optional[_builtins.str] = None, + role_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAuthorizationFolderCustomRoleResult: + """ + Custom Role resource schema. + + ## Example Usage + + + :param _builtins.str resource_id: Resource to add the custom role to. + :param _builtins.str role_id: The ID of the role. + """ + __args__ = dict() + __args__['resourceId'] = resource_id + __args__['roleId'] = role_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole', __args__, opts=opts, typ=GetAuthorizationFolderCustomRoleResult).value + + return AwaitableGetAuthorizationFolderCustomRoleResult( + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + permissions=pulumi.get(__ret__, 'permissions'), + resource_id=pulumi.get(__ret__, 'resource_id'), + role_id=pulumi.get(__ret__, 'role_id')) +def get_authorization_folder_custom_role_output(resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAuthorizationFolderCustomRoleResult]: + """ + Custom Role resource schema. + + ## Example Usage + + + :param _builtins.str resource_id: Resource to add the custom role to. + :param _builtins.str role_id: The ID of the role. + """ + __args__ = dict() + __args__['resourceId'] = resource_id + __args__['roleId'] = role_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getAuthorizationFolderCustomRole:getAuthorizationFolderCustomRole', __args__, opts=opts, typ=GetAuthorizationFolderCustomRoleResult) + return __ret__.apply(lambda __response__: GetAuthorizationFolderCustomRoleResult( + description=pulumi.get(__response__, 'description'), + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'), + permissions=pulumi.get(__response__, 'permissions'), + resource_id=pulumi.get(__response__, 'resource_id'), + role_id=pulumi.get(__response__, 'role_id'))) diff --git a/sdk/python/pulumi_stackit/get_authorization_organization_custom_role.py b/sdk/python/pulumi_stackit/get_authorization_organization_custom_role.py new file mode 100644 index 0000000..f667213 --- /dev/null +++ b/sdk/python/pulumi_stackit/get_authorization_organization_custom_role.py @@ -0,0 +1,160 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetAuthorizationOrganizationCustomRoleResult', + 'AwaitableGetAuthorizationOrganizationCustomRoleResult', + 'get_authorization_organization_custom_role', + 'get_authorization_organization_custom_role_output', +] + +@pulumi.output_type +class GetAuthorizationOrganizationCustomRoleResult: + """ + A collection of values returned by getAuthorizationOrganizationCustomRole. + """ + def __init__(__self__, description=None, id=None, name=None, permissions=None, resource_id=None, role_id=None): + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if permissions and not isinstance(permissions, list): + raise TypeError("Expected argument 'permissions' to be a list") + pulumi.set(__self__, "permissions", permissions) + if resource_id and not isinstance(resource_id, str): + raise TypeError("Expected argument 'resource_id' to be a str") + pulumi.set(__self__, "resource_id", resource_id) + if role_id and not isinstance(role_id, str): + raise TypeError("Expected argument 'role_id' to be a str") + pulumi.set(__self__, "role_id", role_id) + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + A human readable description of the role. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource identifier. It is structured as "[resource*id],[role*id]". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Name of the role + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def permissions(self) -> Sequence[_builtins.str]: + """ + Permissions for the role + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> _builtins.str: + """ + Resource to add the custom role to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleId") + def role_id(self) -> _builtins.str: + """ + The ID of the role. + """ + return pulumi.get(self, "role_id") + + +class AwaitableGetAuthorizationOrganizationCustomRoleResult(GetAuthorizationOrganizationCustomRoleResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAuthorizationOrganizationCustomRoleResult( + description=self.description, + id=self.id, + name=self.name, + permissions=self.permissions, + resource_id=self.resource_id, + role_id=self.role_id) + + +def get_authorization_organization_custom_role(resource_id: Optional[_builtins.str] = None, + role_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAuthorizationOrganizationCustomRoleResult: + """ + Custom Role resource schema. + + ## Example Usage + + + :param _builtins.str resource_id: Resource to add the custom role to. + :param _builtins.str role_id: The ID of the role. + """ + __args__ = dict() + __args__['resourceId'] = resource_id + __args__['roleId'] = role_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole', __args__, opts=opts, typ=GetAuthorizationOrganizationCustomRoleResult).value + + return AwaitableGetAuthorizationOrganizationCustomRoleResult( + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + permissions=pulumi.get(__ret__, 'permissions'), + resource_id=pulumi.get(__ret__, 'resource_id'), + role_id=pulumi.get(__ret__, 'role_id')) +def get_authorization_organization_custom_role_output(resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAuthorizationOrganizationCustomRoleResult]: + """ + Custom Role resource schema. + + ## Example Usage + + + :param _builtins.str resource_id: Resource to add the custom role to. + :param _builtins.str role_id: The ID of the role. + """ + __args__ = dict() + __args__['resourceId'] = resource_id + __args__['roleId'] = role_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getAuthorizationOrganizationCustomRole:getAuthorizationOrganizationCustomRole', __args__, opts=opts, typ=GetAuthorizationOrganizationCustomRoleResult) + return __ret__.apply(lambda __response__: GetAuthorizationOrganizationCustomRoleResult( + description=pulumi.get(__response__, 'description'), + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'), + permissions=pulumi.get(__response__, 'permissions'), + resource_id=pulumi.get(__response__, 'resource_id'), + role_id=pulumi.get(__response__, 'role_id'))) diff --git a/sdk/python/pulumi_stackit/get_secretsmanager_instance_role_bindings_v1.py b/sdk/python/pulumi_stackit/get_secretsmanager_instance_role_bindings_v1.py new file mode 100644 index 0000000..5238c9a --- /dev/null +++ b/sdk/python/pulumi_stackit/get_secretsmanager_instance_role_bindings_v1.py @@ -0,0 +1,137 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetSecretsmanagerInstanceRoleBindingsV1Result', + 'AwaitableGetSecretsmanagerInstanceRoleBindingsV1Result', + 'get_secretsmanager_instance_role_bindings_v1', + 'get_secretsmanager_instance_role_bindings_v1_output', +] + +@pulumi.output_type +class GetSecretsmanagerInstanceRoleBindingsV1Result: + """ + A collection of values returned by getSecretsmanagerInstanceRoleBindingsV1. + """ + def __init__(__self__, id=None, region=None, resource_id=None, role_bindings=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if resource_id and not isinstance(resource_id, str): + raise TypeError("Expected argument 'resource_id' to be a str") + pulumi.set(__self__, "resource_id", resource_id) + if role_bindings and not isinstance(role_bindings, list): + raise TypeError("Expected argument 'role_bindings' to be a list") + pulumi.set(__self__, "role_bindings", role_bindings) + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource identifier. It is structured as "`region`,`resource_id`". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> _builtins.str: + """ + The identifier of the resource to get the role bindings for. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleBindings") + def role_bindings(self) -> Sequence['outputs.GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult']: + """ + List of role bindings. + """ + return pulumi.get(self, "role_bindings") + + +class AwaitableGetSecretsmanagerInstanceRoleBindingsV1Result(GetSecretsmanagerInstanceRoleBindingsV1Result): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetSecretsmanagerInstanceRoleBindingsV1Result( + id=self.id, + region=self.region, + resource_id=self.resource_id, + role_bindings=self.role_bindings) + + +def get_secretsmanager_instance_role_bindings_v1(region: Optional[_builtins.str] = None, + resource_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSecretsmanagerInstanceRoleBindingsV1Result: + """ + IAM role binding datasource schema. + + > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str resource_id: The identifier of the resource to get the role bindings for. + """ + __args__ = dict() + __args__['region'] = region + __args__['resourceId'] = resource_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1', __args__, opts=opts, typ=GetSecretsmanagerInstanceRoleBindingsV1Result).value + + return AwaitableGetSecretsmanagerInstanceRoleBindingsV1Result( + id=pulumi.get(__ret__, 'id'), + region=pulumi.get(__ret__, 'region'), + resource_id=pulumi.get(__ret__, 'resource_id'), + role_bindings=pulumi.get(__ret__, 'role_bindings')) +def get_secretsmanager_instance_role_bindings_v1_output(region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetSecretsmanagerInstanceRoleBindingsV1Result]: + """ + IAM role binding datasource schema. + + > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str resource_id: The identifier of the resource to get the role bindings for. + """ + __args__ = dict() + __args__['region'] = region + __args__['resourceId'] = resource_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getSecretsmanagerInstanceRoleBindingsV1:getSecretsmanagerInstanceRoleBindingsV1', __args__, opts=opts, typ=GetSecretsmanagerInstanceRoleBindingsV1Result) + return __ret__.apply(lambda __response__: GetSecretsmanagerInstanceRoleBindingsV1Result( + id=pulumi.get(__response__, 'id'), + region=pulumi.get(__response__, 'region'), + resource_id=pulumi.get(__response__, 'resource_id'), + role_bindings=pulumi.get(__response__, 'role_bindings'))) diff --git a/sdk/python/pulumi_stackit/get_secretsmanager_secret_group_role_bindings_v1.py b/sdk/python/pulumi_stackit/get_secretsmanager_secret_group_role_bindings_v1.py new file mode 100644 index 0000000..a2281ca --- /dev/null +++ b/sdk/python/pulumi_stackit/get_secretsmanager_secret_group_role_bindings_v1.py @@ -0,0 +1,137 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetSecretsmanagerSecretGroupRoleBindingsV1Result', + 'AwaitableGetSecretsmanagerSecretGroupRoleBindingsV1Result', + 'get_secretsmanager_secret_group_role_bindings_v1', + 'get_secretsmanager_secret_group_role_bindings_v1_output', +] + +@pulumi.output_type +class GetSecretsmanagerSecretGroupRoleBindingsV1Result: + """ + A collection of values returned by getSecretsmanagerSecretGroupRoleBindingsV1. + """ + def __init__(__self__, id=None, region=None, resource_id=None, role_bindings=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if resource_id and not isinstance(resource_id, str): + raise TypeError("Expected argument 'resource_id' to be a str") + pulumi.set(__self__, "resource_id", resource_id) + if role_bindings and not isinstance(role_bindings, list): + raise TypeError("Expected argument 'role_bindings' to be a list") + pulumi.set(__self__, "role_bindings", role_bindings) + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource identifier. It is structured as "`region`,`resource_id`". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> _builtins.str: + """ + The identifier of the resource to get the role bindings for. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter(name="roleBindings") + def role_bindings(self) -> Sequence['outputs.GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult']: + """ + List of role bindings. + """ + return pulumi.get(self, "role_bindings") + + +class AwaitableGetSecretsmanagerSecretGroupRoleBindingsV1Result(GetSecretsmanagerSecretGroupRoleBindingsV1Result): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetSecretsmanagerSecretGroupRoleBindingsV1Result( + id=self.id, + region=self.region, + resource_id=self.resource_id, + role_bindings=self.role_bindings) + + +def get_secretsmanager_secret_group_role_bindings_v1(region: Optional[_builtins.str] = None, + resource_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSecretsmanagerSecretGroupRoleBindingsV1Result: + """ + IAM role binding datasource schema. + + > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str resource_id: The identifier of the resource to get the role bindings for. + """ + __args__ = dict() + __args__['region'] = region + __args__['resourceId'] = resource_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1', __args__, opts=opts, typ=GetSecretsmanagerSecretGroupRoleBindingsV1Result).value + + return AwaitableGetSecretsmanagerSecretGroupRoleBindingsV1Result( + id=pulumi.get(__ret__, 'id'), + region=pulumi.get(__ret__, 'region'), + resource_id=pulumi.get(__ret__, 'resource_id'), + role_bindings=pulumi.get(__ret__, 'role_bindings')) +def get_secretsmanager_secret_group_role_bindings_v1_output(region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetSecretsmanagerSecretGroupRoleBindingsV1Result]: + """ + IAM role binding datasource schema. + + > This datasource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str resource_id: The identifier of the resource to get the role bindings for. + """ + __args__ = dict() + __args__['region'] = region + __args__['resourceId'] = resource_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getSecretsmanagerSecretGroupRoleBindingsV1:getSecretsmanagerSecretGroupRoleBindingsV1', __args__, opts=opts, typ=GetSecretsmanagerSecretGroupRoleBindingsV1Result) + return __ret__.apply(lambda __response__: GetSecretsmanagerSecretGroupRoleBindingsV1Result( + id=pulumi.get(__response__, 'id'), + region=pulumi.get(__response__, 'region'), + resource_id=pulumi.get(__response__, 'resource_id'), + role_bindings=pulumi.get(__response__, 'role_bindings'))) diff --git a/sdk/python/pulumi_stackit/get_sfs_project_lock.py b/sdk/python/pulumi_stackit/get_sfs_project_lock.py new file mode 100644 index 0000000..cd873b2 --- /dev/null +++ b/sdk/python/pulumi_stackit/get_sfs_project_lock.py @@ -0,0 +1,132 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetSfsProjectLockResult', + 'AwaitableGetSfsProjectLockResult', + 'get_sfs_project_lock', + 'get_sfs_project_lock_output', +] + +@pulumi.output_type +class GetSfsProjectLockResult: + """ + A collection of values returned by getSfsProjectLock. + """ + def __init__(__self__, id=None, lock_id=None, project_id=None, region=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if lock_id and not isinstance(lock_id, str): + raise TypeError("Expected argument 'lock_id' to be a str") + pulumi.set(__self__, "lock_id", lock_id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource identifier. It is structured as "`project_id`,`region`". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter(name="lockId") + def lock_id(self) -> _builtins.str: + """ + ID of the lock. + """ + return pulumi.get(self, "lock_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT Project ID to which the project lock is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + +class AwaitableGetSfsProjectLockResult(GetSfsProjectLockResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetSfsProjectLockResult( + id=self.id, + lock_id=self.lock_id, + project_id=self.project_id, + region=self.region) + + +def get_sfs_project_lock(project_id: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSfsProjectLockResult: + """ + SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + + ## Example Usage + + + :param _builtins.str project_id: STACKIT Project ID to which the project lock is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getSfsProjectLock:getSfsProjectLock', __args__, opts=opts, typ=GetSfsProjectLockResult).value + + return AwaitableGetSfsProjectLockResult( + id=pulumi.get(__ret__, 'id'), + lock_id=pulumi.get(__ret__, 'lock_id'), + project_id=pulumi.get(__ret__, 'project_id'), + region=pulumi.get(__ret__, 'region')) +def get_sfs_project_lock_output(project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetSfsProjectLockResult]: + """ + SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + + ## Example Usage + + + :param _builtins.str project_id: STACKIT Project ID to which the project lock is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getSfsProjectLock:getSfsProjectLock', __args__, opts=opts, typ=GetSfsProjectLockResult) + return __ret__.apply(lambda __response__: GetSfsProjectLockResult( + id=pulumi.get(__response__, 'id'), + lock_id=pulumi.get(__response__, 'lock_id'), + project_id=pulumi.get(__response__, 'project_id'), + region=pulumi.get(__response__, 'region'))) diff --git a/sdk/python/pulumi_stackit/objectstorage_credentials_group.py b/sdk/python/pulumi_stackit/objectstorage_credentials_group.py index bd443a9..6e5b5df 100644 --- a/sdk/python/pulumi_stackit/objectstorage_credentials_group.py +++ b/sdk/python/pulumi_stackit/objectstorage_credentials_group.py @@ -79,7 +79,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, region: Optional[pulumi.Input[_builtins.str]] = None, - urn: Optional[pulumi.Input[_builtins.str]] = None): + stackit_urn: Optional[pulumi.Input[_builtins.str]] = None): """ Input properties used for looking up and filtering ObjectstorageCredentialsGroup resources. @@ -87,7 +87,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] name: The credentials group's display name. :param pulumi.Input[_builtins.str] project_id: Project ID to which the credentials group is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. - :param pulumi.Input[_builtins.str] urn: Credentials group uniform resource name (URN) + :param pulumi.Input[_builtins.str] stackit_urn: Credentials group uniform resource name (URN) """ if credentials_group_id is not None: pulumi.set(__self__, "credentials_group_id", credentials_group_id) @@ -97,8 +97,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project_id", project_id) if region is not None: pulumi.set(__self__, "region", region) - if urn is not None: - pulumi.set(__self__, "urn", urn) + if stackit_urn is not None: + pulumi.set(__self__, "stackit_urn", stackit_urn) @_builtins.property @pulumi.getter(name="credentialsGroupId") @@ -149,16 +149,16 @@ def region(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "region", value) @_builtins.property - @pulumi.getter - def urn(self) -> Optional[pulumi.Input[_builtins.str]]: + @pulumi.getter(name="stackitUrn") + def stackit_urn(self) -> Optional[pulumi.Input[_builtins.str]]: """ Credentials group uniform resource name (URN) """ - return pulumi.get(self, "urn") + return pulumi.get(self, "stackit_urn") - @urn.setter - def urn(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "urn", value) + @stackit_urn.setter + def stackit_urn(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "stackit_urn", value) @pulumi.type_token("stackit:index/objectstorageCredentialsGroup:ObjectstorageCredentialsGroup") @@ -228,7 +228,7 @@ def _internal_init(__self__, __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region __props__.__dict__["credentials_group_id"] = None - __props__.__dict__["urn"] = None + __props__.__dict__["stackit_urn"] = None super(ObjectstorageCredentialsGroup, __self__).__init__( 'stackit:index/objectstorageCredentialsGroup:ObjectstorageCredentialsGroup', resource_name, @@ -243,7 +243,7 @@ def get(resource_name: str, name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, region: Optional[pulumi.Input[_builtins.str]] = None, - urn: Optional[pulumi.Input[_builtins.str]] = None) -> 'ObjectstorageCredentialsGroup': + stackit_urn: Optional[pulumi.Input[_builtins.str]] = None) -> 'ObjectstorageCredentialsGroup': """ Get an existing ObjectstorageCredentialsGroup resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -255,7 +255,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] name: The credentials group's display name. :param pulumi.Input[_builtins.str] project_id: Project ID to which the credentials group is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. - :param pulumi.Input[_builtins.str] urn: Credentials group uniform resource name (URN) + :param pulumi.Input[_builtins.str] stackit_urn: Credentials group uniform resource name (URN) """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -265,7 +265,7 @@ def get(resource_name: str, __props__.__dict__["name"] = name __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region - __props__.__dict__["urn"] = urn + __props__.__dict__["stackit_urn"] = stackit_urn return ObjectstorageCredentialsGroup(resource_name, opts=opts, __props__=__props__) @_builtins.property @@ -301,10 +301,10 @@ def region(self) -> pulumi.Output[_builtins.str]: return pulumi.get(self, "region") @_builtins.property - @pulumi.getter - def urn(self) -> pulumi.Output[_builtins.str]: + @pulumi.getter(name="stackitUrn") + def stackit_urn(self) -> pulumi.Output[_builtins.str]: """ Credentials group uniform resource name (URN) """ - return pulumi.get(self, "urn") + return pulumi.get(self, "stackit_urn") diff --git a/sdk/python/pulumi_stackit/outputs.py b/sdk/python/pulumi_stackit/outputs.py index 854b04c..6358ba4 100644 --- a/sdk/python/pulumi_stackit/outputs.py +++ b/sdk/python/pulumi_stackit/outputs.py @@ -45,6 +45,9 @@ 'CdnDistributionConfigBackend', 'CdnDistributionConfigBackendCredentials', 'CdnDistributionConfigOptimizer', + 'CdnDistributionConfigRedirects', + 'CdnDistributionConfigRedirectsRule', + 'CdnDistributionConfigRedirectsRuleMatcher', 'CdnDistributionDomain', 'DnsRecordSetTimeouts', 'DnsZoneTimeouts', @@ -144,6 +147,9 @@ 'GetCdnDistributionConfigResult', 'GetCdnDistributionConfigBackendResult', 'GetCdnDistributionConfigOptimizerResult', + 'GetCdnDistributionConfigRedirectsResult', + 'GetCdnDistributionConfigRedirectsRuleResult', + 'GetCdnDistributionConfigRedirectsRuleMatcherResult', 'GetCdnDistributionDomainResult', 'GetDnsRecordSetTimeoutsResult', 'GetDnsZoneTimeoutsResult', @@ -203,6 +209,8 @@ 'GetRoutingTableRoutesRouteNextHopResult', 'GetRoutingTablesItemResult', 'GetSecretsmanagerInstanceKmsKeyResult', + 'GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult', + 'GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult', 'GetSecurityGroupRuleIcmpParametersResult', 'GetSecurityGroupRulePortRangeResult', 'GetSecurityGroupRuleProtocolResult', @@ -1508,12 +1516,14 @@ def __init__(__self__, *, backend: 'outputs.CdnDistributionConfigBackend', regions: Sequence[_builtins.str], blocked_countries: Optional[Sequence[_builtins.str]] = None, - optimizer: Optional['outputs.CdnDistributionConfigOptimizer'] = None): + optimizer: Optional['outputs.CdnDistributionConfigOptimizer'] = None, + redirects: Optional['outputs.CdnDistributionConfigRedirects'] = None): """ :param 'CdnDistributionConfigBackendArgs' backend: The configured backend for the distribution :param Sequence[_builtins.str] regions: The configured regions where content will be hosted :param Sequence[_builtins.str] blocked_countries: The configured countries where distribution of content is blocked :param 'CdnDistributionConfigOptimizerArgs' optimizer: Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. + :param 'CdnDistributionConfigRedirectsArgs' redirects: A wrapper for a list of redirect rules that allows for redirect settings on a distribution """ pulumi.set(__self__, "backend", backend) pulumi.set(__self__, "regions", regions) @@ -1521,6 +1531,8 @@ def __init__(__self__, *, pulumi.set(__self__, "blocked_countries", blocked_countries) if optimizer is not None: pulumi.set(__self__, "optimizer", optimizer) + if redirects is not None: + pulumi.set(__self__, "redirects", redirects) @_builtins.property @pulumi.getter @@ -1554,6 +1566,14 @@ def optimizer(self) -> Optional['outputs.CdnDistributionConfigOptimizer']: """ return pulumi.get(self, "optimizer") + @_builtins.property + @pulumi.getter + def redirects(self) -> Optional['outputs.CdnDistributionConfigRedirects']: + """ + A wrapper for a list of redirect rules that allows for redirect settings on a distribution + """ + return pulumi.get(self, "redirects") + @pulumi.output_type class CdnDistributionConfigBackend(dict): @@ -1727,6 +1747,168 @@ def enabled(self) -> Optional[_builtins.bool]: return pulumi.get(self, "enabled") +@pulumi.output_type +class CdnDistributionConfigRedirects(dict): + def __init__(__self__, *, + rules: Sequence['outputs.CdnDistributionConfigRedirectsRule']): + """ + :param Sequence['CdnDistributionConfigRedirectsRuleArgs'] rules: A list of redirect rules. The order of rules matters for evaluation + """ + pulumi.set(__self__, "rules", rules) + + @_builtins.property + @pulumi.getter + def rules(self) -> Sequence['outputs.CdnDistributionConfigRedirectsRule']: + """ + A list of redirect rules. The order of rules matters for evaluation + """ + return pulumi.get(self, "rules") + + +@pulumi.output_type +class CdnDistributionConfigRedirectsRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "statusCode": + suggest = "status_code" + elif key == "targetUrl": + suggest = "target_url" + elif key == "ruleMatchCondition": + suggest = "rule_match_condition" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigRedirectsRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CdnDistributionConfigRedirectsRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CdnDistributionConfigRedirectsRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + matchers: Sequence['outputs.CdnDistributionConfigRedirectsRuleMatcher'], + status_code: _builtins.int, + target_url: _builtins.str, + description: Optional[_builtins.str] = None, + enabled: Optional[_builtins.bool] = None, + rule_match_condition: Optional[_builtins.str] = None): + """ + :param Sequence['CdnDistributionConfigRedirectsRuleMatcherArgs'] matchers: A list of matchers that define when this rule should apply. At least one matcher is required + :param _builtins.int status_code: The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + :param _builtins.str target_url: The target URL to redirect to. Must be a valid URI + :param _builtins.str description: An optional description for the redirect rule + :param _builtins.bool enabled: A toggle to enable or disable the redirect rule. Default to true + :param _builtins.str rule_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + pulumi.set(__self__, "matchers", matchers) + pulumi.set(__self__, "status_code", status_code) + pulumi.set(__self__, "target_url", target_url) + if description is not None: + pulumi.set(__self__, "description", description) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if rule_match_condition is not None: + pulumi.set(__self__, "rule_match_condition", rule_match_condition) + + @_builtins.property + @pulumi.getter + def matchers(self) -> Sequence['outputs.CdnDistributionConfigRedirectsRuleMatcher']: + """ + A list of matchers that define when this rule should apply. At least one matcher is required + """ + return pulumi.get(self, "matchers") + + @_builtins.property + @pulumi.getter(name="statusCode") + def status_code(self) -> _builtins.int: + """ + The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + """ + return pulumi.get(self, "status_code") + + @_builtins.property + @pulumi.getter(name="targetUrl") + def target_url(self) -> _builtins.str: + """ + The target URL to redirect to. Must be a valid URI + """ + return pulumi.get(self, "target_url") + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[_builtins.str]: + """ + An optional description for the redirect rule + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def enabled(self) -> Optional[_builtins.bool]: + """ + A toggle to enable or disable the redirect rule. Default to true + """ + return pulumi.get(self, "enabled") + + @_builtins.property + @pulumi.getter(name="ruleMatchCondition") + def rule_match_condition(self) -> Optional[_builtins.str]: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "rule_match_condition") + + +@pulumi.output_type +class CdnDistributionConfigRedirectsRuleMatcher(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "valueMatchCondition": + suggest = "value_match_condition" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigRedirectsRuleMatcher. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CdnDistributionConfigRedirectsRuleMatcher.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CdnDistributionConfigRedirectsRuleMatcher.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + values: Sequence[_builtins.str], + value_match_condition: Optional[_builtins.str] = None): + """ + :param Sequence[_builtins.str] values: A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + :param _builtins.str value_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + pulumi.set(__self__, "values", values) + if value_match_condition is not None: + pulumi.set(__self__, "value_match_condition", value_match_condition) + + @_builtins.property + @pulumi.getter + def values(self) -> Sequence[_builtins.str]: + """ + A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + """ + return pulumi.get(self, "values") + + @_builtins.property + @pulumi.getter(name="valueMatchCondition") + def value_match_condition(self) -> Optional[_builtins.str]: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "value_match_condition") + + @pulumi.output_type class CdnDistributionDomain(dict): def __init__(__self__, *, @@ -6287,38 +6469,24 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - end: _builtins.str, - start: _builtins.str, enable_kubernetes_version_updates: Optional[_builtins.bool] = None, - enable_machine_image_version_updates: Optional[_builtins.bool] = None): + enable_machine_image_version_updates: Optional[_builtins.bool] = None, + end: Optional[_builtins.str] = None, + start: Optional[_builtins.str] = None): """ - :param _builtins.str end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - :param _builtins.str start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. :param _builtins.bool enable_kubernetes_version_updates: Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). :param _builtins.bool enable_machine_image_version_updates: Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + :param _builtins.str end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + :param _builtins.str start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) if enable_kubernetes_version_updates is not None: pulumi.set(__self__, "enable_kubernetes_version_updates", enable_kubernetes_version_updates) if enable_machine_image_version_updates is not None: pulumi.set(__self__, "enable_machine_image_version_updates", enable_machine_image_version_updates) - - @_builtins.property - @pulumi.getter - def end(self) -> _builtins.str: - """ - Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ - return pulumi.get(self, "end") - - @_builtins.property - @pulumi.getter - def start(self) -> _builtins.str: - """ - Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - """ - return pulumi.get(self, "start") + if end is not None: + pulumi.set(__self__, "end", end) + if start is not None: + pulumi.set(__self__, "start", start) @_builtins.property @pulumi.getter(name="enableKubernetesVersionUpdates") @@ -6336,6 +6504,22 @@ def enable_machine_image_version_updates(self) -> Optional[_builtins.bool]: """ return pulumi.get(self, "enable_machine_image_version_updates") + @_builtins.property + @pulumi.getter + def end(self) -> Optional[_builtins.str]: + """ + Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ + return pulumi.get(self, "end") + + @_builtins.property + @pulumi.getter + def start(self) -> Optional[_builtins.str]: + """ + Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + """ + return pulumi.get(self, "start") + @pulumi.output_type class SkeClusterNetwork(dict): @@ -7833,16 +8017,19 @@ class GetCdnDistributionConfigResult(dict): def __init__(__self__, *, backend: 'outputs.GetCdnDistributionConfigBackendResult', optimizer: 'outputs.GetCdnDistributionConfigOptimizerResult', + redirects: 'outputs.GetCdnDistributionConfigRedirectsResult', regions: Sequence[_builtins.str], blocked_countries: Optional[Sequence[_builtins.str]] = None): """ :param 'GetCdnDistributionConfigBackendArgs' backend: The configured backend for the distribution :param 'GetCdnDistributionConfigOptimizerArgs' optimizer: Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. + :param 'GetCdnDistributionConfigRedirectsArgs' redirects: A wrapper for a list of redirect rules that allows for redirect settings on a distribution :param Sequence[_builtins.str] regions: The configured regions where content will be hosted :param Sequence[_builtins.str] blocked_countries: The configured countries where distribution of content is blocked """ pulumi.set(__self__, "backend", backend) pulumi.set(__self__, "optimizer", optimizer) + pulumi.set(__self__, "redirects", redirects) pulumi.set(__self__, "regions", regions) if blocked_countries is not None: pulumi.set(__self__, "blocked_countries", blocked_countries) @@ -7863,6 +8050,14 @@ def optimizer(self) -> 'outputs.GetCdnDistributionConfigOptimizerResult': """ return pulumi.get(self, "optimizer") + @_builtins.property + @pulumi.getter + def redirects(self) -> 'outputs.GetCdnDistributionConfigRedirectsResult': + """ + A wrapper for a list of redirect rules that allows for redirect settings on a distribution + """ + return pulumi.get(self, "redirects") + @_builtins.property @pulumi.getter def regions(self) -> Sequence[_builtins.str]: @@ -7965,6 +8160,126 @@ def enabled(self) -> _builtins.bool: return pulumi.get(self, "enabled") +@pulumi.output_type +class GetCdnDistributionConfigRedirectsResult(dict): + def __init__(__self__, *, + rules: Sequence['outputs.GetCdnDistributionConfigRedirectsRuleResult']): + """ + :param Sequence['GetCdnDistributionConfigRedirectsRuleArgs'] rules: A list of redirect rules. The order of rules matters for evaluation + """ + pulumi.set(__self__, "rules", rules) + + @_builtins.property + @pulumi.getter + def rules(self) -> Sequence['outputs.GetCdnDistributionConfigRedirectsRuleResult']: + """ + A list of redirect rules. The order of rules matters for evaluation + """ + return pulumi.get(self, "rules") + + +@pulumi.output_type +class GetCdnDistributionConfigRedirectsRuleResult(dict): + def __init__(__self__, *, + description: _builtins.str, + enabled: _builtins.bool, + matchers: Sequence['outputs.GetCdnDistributionConfigRedirectsRuleMatcherResult'], + rule_match_condition: _builtins.str, + status_code: _builtins.int, + target_url: _builtins.str): + """ + :param _builtins.str description: An optional description for the redirect rule + :param _builtins.bool enabled: A toggle to enable or disable the redirect rule. Default to true + :param Sequence['GetCdnDistributionConfigRedirectsRuleMatcherArgs'] matchers: A list of matchers that define when this rule should apply. At least one matcher is required + :param _builtins.str rule_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + :param _builtins.int status_code: The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + :param _builtins.str target_url: The target URL to redirect to. Must be a valid URI + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "matchers", matchers) + pulumi.set(__self__, "rule_match_condition", rule_match_condition) + pulumi.set(__self__, "status_code", status_code) + pulumi.set(__self__, "target_url", target_url) + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + An optional description for the redirect rule + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def enabled(self) -> _builtins.bool: + """ + A toggle to enable or disable the redirect rule. Default to true + """ + return pulumi.get(self, "enabled") + + @_builtins.property + @pulumi.getter + def matchers(self) -> Sequence['outputs.GetCdnDistributionConfigRedirectsRuleMatcherResult']: + """ + A list of matchers that define when this rule should apply. At least one matcher is required + """ + return pulumi.get(self, "matchers") + + @_builtins.property + @pulumi.getter(name="ruleMatchCondition") + def rule_match_condition(self) -> _builtins.str: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "rule_match_condition") + + @_builtins.property + @pulumi.getter(name="statusCode") + def status_code(self) -> _builtins.int: + """ + The HTTP status code for the redirect. Must be one of 301, 302, 303, 307, or 308. + """ + return pulumi.get(self, "status_code") + + @_builtins.property + @pulumi.getter(name="targetUrl") + def target_url(self) -> _builtins.str: + """ + The target URL to redirect to. Must be a valid URI + """ + return pulumi.get(self, "target_url") + + +@pulumi.output_type +class GetCdnDistributionConfigRedirectsRuleMatcherResult(dict): + def __init__(__self__, *, + value_match_condition: _builtins.str, + values: Sequence[_builtins.str]): + """ + :param _builtins.str value_match_condition: Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + :param Sequence[_builtins.str] values: A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + """ + pulumi.set(__self__, "value_match_condition", value_match_condition) + pulumi.set(__self__, "values", values) + + @_builtins.property + @pulumi.getter(name="valueMatchCondition") + def value_match_condition(self) -> _builtins.str: + """ + Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY. + """ + return pulumi.get(self, "value_match_condition") + + @_builtins.property + @pulumi.getter + def values(self) -> Sequence[_builtins.str]: + """ + A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*" + """ + return pulumi.get(self, "values") + + @pulumi.output_type class GetCdnDistributionDomainResult(dict): def __init__(__self__, *, @@ -8934,21 +9249,20 @@ class GetLoadbalancerTargetPoolResult(dict): def __init__(__self__, *, active_health_check: 'outputs.GetLoadbalancerTargetPoolActiveHealthCheckResult', name: _builtins.str, + session_persistence: 'outputs.GetLoadbalancerTargetPoolSessionPersistenceResult', target_port: _builtins.int, - targets: Sequence['outputs.GetLoadbalancerTargetPoolTargetResult'], - session_persistence: Optional['outputs.GetLoadbalancerTargetPoolSessionPersistenceResult'] = None): + targets: Sequence['outputs.GetLoadbalancerTargetPoolTargetResult']): """ :param _builtins.str name: Target pool name. + :param 'GetLoadbalancerTargetPoolSessionPersistenceArgs' session_persistence: Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. :param _builtins.int target_port: Identical port number where each target listens for traffic. :param Sequence['GetLoadbalancerTargetPoolTargetArgs'] targets: List of all targets which will be used in the pool. Limited to 1000. - :param 'GetLoadbalancerTargetPoolSessionPersistenceArgs' session_persistence: Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. """ pulumi.set(__self__, "active_health_check", active_health_check) pulumi.set(__self__, "name", name) + pulumi.set(__self__, "session_persistence", session_persistence) pulumi.set(__self__, "target_port", target_port) pulumi.set(__self__, "targets", targets) - if session_persistence is not None: - pulumi.set(__self__, "session_persistence", session_persistence) @_builtins.property @pulumi.getter(name="activeHealthCheck") @@ -8963,6 +9277,14 @@ def name(self) -> _builtins.str: """ return pulumi.get(self, "name") + @_builtins.property + @pulumi.getter(name="sessionPersistence") + def session_persistence(self) -> 'outputs.GetLoadbalancerTargetPoolSessionPersistenceResult': + """ + Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. + """ + return pulumi.get(self, "session_persistence") + @_builtins.property @pulumi.getter(name="targetPort") def target_port(self) -> _builtins.int: @@ -8979,14 +9301,6 @@ def targets(self) -> Sequence['outputs.GetLoadbalancerTargetPoolTargetResult']: """ return pulumi.get(self, "targets") - @_builtins.property - @pulumi.getter(name="sessionPersistence") - def session_persistence(self) -> Optional['outputs.GetLoadbalancerTargetPoolSessionPersistenceResult']: - """ - Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. - """ - return pulumi.get(self, "session_persistence") - @pulumi.output_type class GetLoadbalancerTargetPoolActiveHealthCheckResult(dict): @@ -9053,16 +9367,15 @@ def unhealthy_threshold(self) -> _builtins.int: @pulumi.output_type class GetLoadbalancerTargetPoolSessionPersistenceResult(dict): def __init__(__self__, *, - use_source_ip_address: Optional[_builtins.bool] = None): + use_source_ip_address: _builtins.bool): """ :param _builtins.bool use_source_ip_address: If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. """ - if use_source_ip_address is not None: - pulumi.set(__self__, "use_source_ip_address", use_source_ip_address) + pulumi.set(__self__, "use_source_ip_address", use_source_ip_address) @_builtins.property @pulumi.getter(name="useSourceIpAddress") - def use_source_ip_address(self) -> Optional[_builtins.bool]: + def use_source_ip_address(self) -> _builtins.bool: """ If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. """ @@ -11460,6 +11773,64 @@ def service_account_email(self) -> _builtins.str: return pulumi.get(self, "service_account_email") +@pulumi.output_type +class GetSecretsmanagerInstanceRoleBindingsV1RoleBindingResult(dict): + def __init__(__self__, *, + role: _builtins.str, + subject: _builtins.str): + """ + :param _builtins.str role: A valid role defined for the resource. + :param _builtins.str subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "subject", subject) + + @_builtins.property + @pulumi.getter + def role(self) -> _builtins.str: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @_builtins.property + @pulumi.getter + def subject(self) -> _builtins.str: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + +@pulumi.output_type +class GetSecretsmanagerSecretGroupRoleBindingsV1RoleBindingResult(dict): + def __init__(__self__, *, + role: _builtins.str, + subject: _builtins.str): + """ + :param _builtins.str role: A valid role defined for the resource. + :param _builtins.str subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "subject", subject) + + @_builtins.property + @pulumi.getter + def role(self) -> _builtins.str: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @_builtins.property + @pulumi.getter + def subject(self) -> _builtins.str: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + @pulumi.output_type class GetSecurityGroupRuleIcmpParametersResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_stackit/secretsmanager_instance_role_binding_v1.py b/sdk/python/pulumi_stackit/secretsmanager_instance_role_binding_v1.py new file mode 100644 index 0000000..75bf64c --- /dev/null +++ b/sdk/python/pulumi_stackit/secretsmanager_instance_role_binding_v1.py @@ -0,0 +1,311 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['SecretsmanagerInstanceRoleBindingV1Args', 'SecretsmanagerInstanceRoleBindingV1'] + +@pulumi.input_type +class SecretsmanagerInstanceRoleBindingV1Args: + def __init__(__self__, *, + resource_id: pulumi.Input[_builtins.str], + role: pulumi.Input[_builtins.str], + subject: pulumi.Input[_builtins.str], + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a SecretsmanagerInstanceRoleBindingV1 resource. + + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "resource_id", resource_id) + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "subject", subject) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Input[_builtins.str]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def role(self) -> pulumi.Input[_builtins.str]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "role", value) + + @_builtins.property + @pulumi.getter + def subject(self) -> pulumi.Input[_builtins.str]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "subject", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _SecretsmanagerInstanceRoleBindingV1State: + def __init__(__self__, *, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering SecretsmanagerInstanceRoleBindingV1 resources. + + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + if region is not None: + pulumi.set(__self__, "region", region) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if role is not None: + pulumi.set(__self__, "role", role) + if subject is not None: + pulumi.set(__self__, "subject", subject) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "role", value) + + @_builtins.property + @pulumi.getter + def subject(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "subject", value) + + +@pulumi.type_token("stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1") +class SecretsmanagerInstanceRoleBindingV1(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + IAM role binding resource schema. + + > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + ## Import + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: SecretsmanagerInstanceRoleBindingV1Args, + opts: Optional[pulumi.ResourceOptions] = None): + """ + IAM role binding resource schema. + + > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + ## Import + + + :param str resource_name: The name of the resource. + :param SecretsmanagerInstanceRoleBindingV1Args args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(SecretsmanagerInstanceRoleBindingV1Args, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = SecretsmanagerInstanceRoleBindingV1Args.__new__(SecretsmanagerInstanceRoleBindingV1Args) + + __props__.__dict__["region"] = region + if resource_id is None and not opts.urn: + raise TypeError("Missing required property 'resource_id'") + __props__.__dict__["resource_id"] = resource_id + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + if subject is None and not opts.urn: + raise TypeError("Missing required property 'subject'") + __props__.__dict__["subject"] = subject + super(SecretsmanagerInstanceRoleBindingV1, __self__).__init__( + 'stackit:index/secretsmanagerInstanceRoleBindingV1:SecretsmanagerInstanceRoleBindingV1', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecretsmanagerInstanceRoleBindingV1': + """ + Get an existing SecretsmanagerInstanceRoleBindingV1 resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _SecretsmanagerInstanceRoleBindingV1State.__new__(_SecretsmanagerInstanceRoleBindingV1State) + + __props__.__dict__["region"] = region + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role"] = role + __props__.__dict__["subject"] = subject + return SecretsmanagerInstanceRoleBindingV1(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Output[_builtins.str]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter + def role(self) -> pulumi.Output[_builtins.str]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @_builtins.property + @pulumi.getter + def subject(self) -> pulumi.Output[_builtins.str]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + diff --git a/sdk/python/pulumi_stackit/secretsmanager_secret_group_role_binding_v1.py b/sdk/python/pulumi_stackit/secretsmanager_secret_group_role_binding_v1.py new file mode 100644 index 0000000..a764346 --- /dev/null +++ b/sdk/python/pulumi_stackit/secretsmanager_secret_group_role_binding_v1.py @@ -0,0 +1,311 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['SecretsmanagerSecretGroupRoleBindingV1Args', 'SecretsmanagerSecretGroupRoleBindingV1'] + +@pulumi.input_type +class SecretsmanagerSecretGroupRoleBindingV1Args: + def __init__(__self__, *, + resource_id: pulumi.Input[_builtins.str], + role: pulumi.Input[_builtins.str], + subject: pulumi.Input[_builtins.str], + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a SecretsmanagerSecretGroupRoleBindingV1 resource. + + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "resource_id", resource_id) + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "subject", subject) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Input[_builtins.str]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def role(self) -> pulumi.Input[_builtins.str]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "role", value) + + @_builtins.property + @pulumi.getter + def subject(self) -> pulumi.Input[_builtins.str]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "subject", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _SecretsmanagerSecretGroupRoleBindingV1State: + def __init__(__self__, *, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering SecretsmanagerSecretGroupRoleBindingV1 resources. + + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + if region is not None: + pulumi.set(__self__, "region", region) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if role is not None: + pulumi.set(__self__, "role", role) + if subject is not None: + pulumi.set(__self__, "subject", subject) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "resource_id", value) + + @_builtins.property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "role", value) + + @_builtins.property + @pulumi.getter + def subject(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "subject", value) + + +@pulumi.type_token("stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1") +class SecretsmanagerSecretGroupRoleBindingV1(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + IAM role binding resource schema. + + > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + ## Import + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: SecretsmanagerSecretGroupRoleBindingV1Args, + opts: Optional[pulumi.ResourceOptions] = None): + """ + IAM role binding resource schema. + + > This resource is part of the iam experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. + + ## Example Usage + + ## Import + + + :param str resource_name: The name of the resource. + :param SecretsmanagerSecretGroupRoleBindingV1Args args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(SecretsmanagerSecretGroupRoleBindingV1Args, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = SecretsmanagerSecretGroupRoleBindingV1Args.__new__(SecretsmanagerSecretGroupRoleBindingV1Args) + + __props__.__dict__["region"] = region + if resource_id is None and not opts.urn: + raise TypeError("Missing required property 'resource_id'") + __props__.__dict__["resource_id"] = resource_id + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + if subject is None and not opts.urn: + raise TypeError("Missing required property 'subject'") + __props__.__dict__["subject"] = subject + super(SecretsmanagerSecretGroupRoleBindingV1, __self__).__init__( + 'stackit:index/secretsmanagerSecretGroupRoleBindingV1:SecretsmanagerSecretGroupRoleBindingV1', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + resource_id: Optional[pulumi.Input[_builtins.str]] = None, + role: Optional[pulumi.Input[_builtins.str]] = None, + subject: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecretsmanagerSecretGroupRoleBindingV1': + """ + Get an existing SecretsmanagerSecretGroupRoleBindingV1 resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] resource_id: The identifier of the resource to apply this role binding to. + :param pulumi.Input[_builtins.str] role: A valid role defined for the resource. + :param pulumi.Input[_builtins.str] subject: Identifier of user, service account or client. Usually email address or name in case of clients. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _SecretsmanagerSecretGroupRoleBindingV1State.__new__(_SecretsmanagerSecretGroupRoleBindingV1State) + + __props__.__dict__["region"] = region + __props__.__dict__["resource_id"] = resource_id + __props__.__dict__["role"] = role + __props__.__dict__["subject"] = subject + return SecretsmanagerSecretGroupRoleBindingV1(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Output[_builtins.str]: + """ + The identifier of the resource to apply this role binding to. + """ + return pulumi.get(self, "resource_id") + + @_builtins.property + @pulumi.getter + def role(self) -> pulumi.Output[_builtins.str]: + """ + A valid role defined for the resource. + """ + return pulumi.get(self, "role") + + @_builtins.property + @pulumi.getter + def subject(self) -> pulumi.Output[_builtins.str]: + """ + Identifier of user, service account or client. Usually email address or name in case of clients. + """ + return pulumi.get(self, "subject") + diff --git a/sdk/python/pulumi_stackit/sfs_project_lock.py b/sdk/python/pulumi_stackit/sfs_project_lock.py new file mode 100644 index 0000000..3a49f3f --- /dev/null +++ b/sdk/python/pulumi_stackit/sfs_project_lock.py @@ -0,0 +1,235 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['SfsProjectLockArgs', 'SfsProjectLock'] + +@pulumi.input_type +class SfsProjectLockArgs: + def __init__(__self__, *, + project_id: pulumi.Input[_builtins.str], + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a SfsProjectLock resource. + + :param pulumi.Input[_builtins.str] project_id: STACKIT Project ID to which the project lock is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "project_id", project_id) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT Project ID to which the project lock is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _SfsProjectLockState: + def __init__(__self__, *, + lock_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering SfsProjectLock resources. + + :param pulumi.Input[_builtins.str] lock_id: ID of the lock. + :param pulumi.Input[_builtins.str] project_id: STACKIT Project ID to which the project lock is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + if lock_id is not None: + pulumi.set(__self__, "lock_id", lock_id) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="lockId") + def lock_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + ID of the lock. + """ + return pulumi.get(self, "lock_id") + + @lock_id.setter + def lock_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "lock_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT Project ID to which the project lock is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.type_token("stackit:index/sfsProjectLock:SfsProjectLock") +class SfsProjectLock(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] project_id: STACKIT Project ID to which the project lock is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: SfsProjectLockArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + SFS project lock resource schema. Must have a `region` specified in the provider configuration. Always use only one project lock per project. + + ## Example Usage + + + :param str resource_name: The name of the resource. + :param SfsProjectLockArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(SfsProjectLockArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = SfsProjectLockArgs.__new__(SfsProjectLockArgs) + + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + __props__.__dict__["lock_id"] = None + super(SfsProjectLock, __self__).__init__( + 'stackit:index/sfsProjectLock:SfsProjectLock', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + lock_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None) -> 'SfsProjectLock': + """ + Get an existing SfsProjectLock resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] lock_id: ID of the lock. + :param pulumi.Input[_builtins.str] project_id: STACKIT Project ID to which the project lock is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _SfsProjectLockState.__new__(_SfsProjectLockState) + + __props__.__dict__["lock_id"] = lock_id + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + return SfsProjectLock(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter(name="lockId") + def lock_id(self) -> pulumi.Output[_builtins.str]: + """ + ID of the lock. + """ + return pulumi.get(self, "lock_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT Project ID to which the project lock is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + diff --git a/sdk/python/pulumi_stackit/sfs_share.py b/sdk/python/pulumi_stackit/sfs_share.py index 4024f10..af06ffc 100644 --- a/sdk/python/pulumi_stackit/sfs_share.py +++ b/sdk/python/pulumi_stackit/sfs_share.py @@ -19,51 +19,37 @@ @pulumi.input_type class SfsShareArgs: def __init__(__self__, *, - export_policy: pulumi.Input[_builtins.str], project_id: pulumi.Input[_builtins.str], resource_pool_id: pulumi.Input[_builtins.str], space_hard_limit_gigabytes: pulumi.Input[_builtins.int], + export_policy: Optional[pulumi.Input[_builtins.str]] = None, name: Optional[pulumi.Input[_builtins.str]] = None, region: Optional[pulumi.Input[_builtins.str]] = None): """ The set of arguments for constructing a SfsShare resource. - :param pulumi.Input[_builtins.str] export_policy: Name of the Share Export Policy to use in the Share. - Note that if this is set to an empty string, the Share can only be mounted in read only by - clients with IPs matching the IP ACL of the Resource Pool hosting this Share. - You can also assign a Share Export Policy after creating the Share :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the share is associated. :param pulumi.Input[_builtins.str] resource_pool_id: The ID of the resource pool for the SFS share. :param pulumi.Input[_builtins.int] space_hard_limit_gigabytes: Space hard limit for the Share. If zero, the Share will have access to the full space of the Resource Pool it lives in. (unit: gigabytes) + :param pulumi.Input[_builtins.str] export_policy: Name of the Share Export Policy to use in the Share. + Note that if this is set to an empty string, the Share can only be mounted in read only by + clients with IPs matching the IP ACL of the Resource Pool hosting this Share. + You can also assign a Share Export Policy after creating the Share :param pulumi.Input[_builtins.str] name: Name of the share. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. """ - pulumi.set(__self__, "export_policy", export_policy) pulumi.set(__self__, "project_id", project_id) pulumi.set(__self__, "resource_pool_id", resource_pool_id) pulumi.set(__self__, "space_hard_limit_gigabytes", space_hard_limit_gigabytes) + if export_policy is not None: + pulumi.set(__self__, "export_policy", export_policy) if name is not None: pulumi.set(__self__, "name", name) if region is not None: pulumi.set(__self__, "region", region) - @_builtins.property - @pulumi.getter(name="exportPolicy") - def export_policy(self) -> pulumi.Input[_builtins.str]: - """ - Name of the Share Export Policy to use in the Share. - Note that if this is set to an empty string, the Share can only be mounted in read only by - clients with IPs matching the IP ACL of the Resource Pool hosting this Share. - You can also assign a Share Export Policy after creating the Share - """ - return pulumi.get(self, "export_policy") - - @export_policy.setter - def export_policy(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "export_policy", value) - @_builtins.property @pulumi.getter(name="projectId") def project_id(self) -> pulumi.Input[_builtins.str]: @@ -102,6 +88,21 @@ def space_hard_limit_gigabytes(self) -> pulumi.Input[_builtins.int]: def space_hard_limit_gigabytes(self, value: pulumi.Input[_builtins.int]): pulumi.set(self, "space_hard_limit_gigabytes", value) + @_builtins.property + @pulumi.getter(name="exportPolicy") + def export_policy(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the Share Export Policy to use in the Share. + Note that if this is set to an empty string, the Share can only be mounted in read only by + clients with IPs matching the IP ACL of the Resource Pool hosting this Share. + You can also assign a Share Export Policy after creating the Share + """ + return pulumi.get(self, "export_policy") + + @export_policy.setter + def export_policy(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "export_policy", value) + @_builtins.property @pulumi.getter def name(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -353,8 +354,6 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SfsShareArgs.__new__(SfsShareArgs) - if export_policy is None and not opts.urn: - raise TypeError("Missing required property 'export_policy'") __props__.__dict__["export_policy"] = export_policy __props__.__dict__["name"] = name if project_id is None and not opts.urn: @@ -424,7 +423,7 @@ def get(resource_name: str, @_builtins.property @pulumi.getter(name="exportPolicy") - def export_policy(self) -> pulumi.Output[_builtins.str]: + def export_policy(self) -> pulumi.Output[Optional[_builtins.str]]: """ Name of the Share Export Policy to use in the Share. Note that if this is set to an empty string, the Share can only be mounted in read only by diff --git a/sdk/python/pulumi_stackit/ske_cluster.py b/sdk/python/pulumi_stackit/ske_cluster.py index d8689dc..a3dc38c 100644 --- a/sdk/python/pulumi_stackit/ske_cluster.py +++ b/sdk/python/pulumi_stackit/ske_cluster.py @@ -34,6 +34,7 @@ def __init__(__self__, *, The set of arguments for constructing a SkeCluster resource. :param pulumi.Input[Sequence[pulumi.Input['SkeClusterNodePoolArgs']]] node_pools: One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the cluster is associated. :param pulumi.Input['SkeClusterExtensionsArgs'] extensions: A single extensions block as defined below. :param pulumi.Input[Sequence[pulumi.Input['SkeClusterHibernationArgs']]] hibernations: One or more hibernation block as defined below. @@ -65,6 +66,7 @@ def __init__(__self__, *, def node_pools(self) -> pulumi.Input[Sequence[pulumi.Input['SkeClusterNodePoolArgs']]]: """ One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. """ return pulumi.get(self, "node_pools") @@ -196,6 +198,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] name: The cluster name. :param pulumi.Input['SkeClusterNetworkArgs'] network: Network block as defined below. :param pulumi.Input[Sequence[pulumi.Input['SkeClusterNodePoolArgs']]] node_pools: One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] pod_address_ranges: The network ranges (in CIDR notation) used by pods of the cluster. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the cluster is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. @@ -326,6 +329,7 @@ def network(self, value: Optional[pulumi.Input['SkeClusterNetworkArgs']]): def node_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SkeClusterNodePoolArgs']]]]: """ One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. """ return pulumi.get(self, "node_pools") @@ -403,6 +407,7 @@ def __init__(__self__, :param pulumi.Input[_builtins.str] name: The cluster name. :param pulumi.Input[Union['SkeClusterNetworkArgs', 'SkeClusterNetworkArgsDict']] network: Network block as defined below. :param pulumi.Input[Sequence[pulumi.Input[Union['SkeClusterNodePoolArgs', 'SkeClusterNodePoolArgsDict']]]] node_pools: One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the cluster is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. """ @@ -507,6 +512,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] name: The cluster name. :param pulumi.Input[Union['SkeClusterNetworkArgs', 'SkeClusterNetworkArgsDict']] network: Network block as defined below. :param pulumi.Input[Sequence[pulumi.Input[Union['SkeClusterNodePoolArgs', 'SkeClusterNodePoolArgsDict']]]] node_pools: One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] pod_address_ranges: The network ranges (in CIDR notation) used by pods of the cluster. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the cluster is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. @@ -598,6 +604,7 @@ def network(self) -> pulumi.Output['outputs.SkeClusterNetwork']: def node_pools(self) -> pulumi.Output[Sequence['outputs.SkeClusterNodePool']]: """ One or more `node_pool` block as defined below. + To keep your Terraform plans clean and readable, always append new node pools to the end of the list. """ return pulumi.get(self, "node_pools")