generated from hashicorp/terraform-provider-scaffolding
/
account_policy_singular_data_source_gen.go
136 lines (123 loc) · 4.53 KB
/
account_policy_singular_data_source_gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Code generated by generators/singular-data-source/main.go; DO NOT EDIT.
package logs
import (
"context"
"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
"github.com/hashicorp/terraform-provider-awscc/internal/generic"
"github.com/hashicorp/terraform-provider-awscc/internal/registry"
)
func init() {
registry.AddDataSourceFactory("awscc_logs_account_policy", accountPolicyDataSource)
}
// accountPolicyDataSource returns the Terraform awscc_logs_account_policy data source.
// This Terraform data source corresponds to the CloudFormation AWS::Logs::AccountPolicy resource.
func accountPolicyDataSource(ctx context.Context) (datasource.DataSource, error) {
attributes := map[string]schema.Attribute{ /*START SCHEMA*/
// Property: AccountId
// CloudFormation resource type schema:
//
// {
// "description": "User account id",
// "pattern": "^\\d{12}$",
// "type": "string"
// }
"account_id": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "User account id",
Computed: true,
}, /*END ATTRIBUTE*/
// Property: PolicyDocument
// CloudFormation resource type schema:
//
// {
// "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per PolicyType.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720",
// "maxLength": 30720,
// "minLength": 1,
// "type": "string"
// }
"policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per PolicyType.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720",
Computed: true,
}, /*END ATTRIBUTE*/
// Property: PolicyName
// CloudFormation resource type schema:
//
// {
// "description": "The name of the account policy",
// "maxLength": 256,
// "minLength": 1,
// "pattern": "^[^:*]{1,256}$",
// "type": "string"
// }
"policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "The name of the account policy",
Computed: true,
}, /*END ATTRIBUTE*/
// Property: PolicyType
// CloudFormation resource type schema:
//
// {
// "description": "Type of the policy.",
// "enum": [
// "DATA_PROTECTION_POLICY",
// "SUBSCRIPTION_FILTER_POLICY"
// ],
// "type": "string"
// }
"policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "Type of the policy.",
Computed: true,
}, /*END ATTRIBUTE*/
// Property: Scope
// CloudFormation resource type schema:
//
// {
// "description": "Scope for policy application",
// "enum": [
// "ALL"
// ],
// "type": "string"
// }
"scope": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "Scope for policy application",
Computed: true,
}, /*END ATTRIBUTE*/
// Property: SelectionCriteria
// CloudFormation resource type schema:
//
// {
// "description": "Log group selection criteria to apply policy only to a subset of log groups. SelectionCriteria string can be up to 25KB and cloudwatchlogs determines the length of selectionCriteria by using its UTF-8 bytes",
// "type": "string"
// }
"selection_criteria": schema.StringAttribute{ /*START ATTRIBUTE*/
Description: "Log group selection criteria to apply policy only to a subset of log groups. SelectionCriteria string can be up to 25KB and cloudwatchlogs determines the length of selectionCriteria by using its UTF-8 bytes",
Computed: true,
}, /*END ATTRIBUTE*/
} /*END SCHEMA*/
attributes["id"] = schema.StringAttribute{
Description: "Uniquely identifies the resource.",
Required: true,
}
schema := schema.Schema{
Description: "Data Source schema for AWS::Logs::AccountPolicy",
Attributes: attributes,
}
var opts generic.DataSourceOptions
opts = opts.WithCloudFormationTypeName("AWS::Logs::AccountPolicy").WithTerraformTypeName("awscc_logs_account_policy")
opts = opts.WithTerraformSchema(schema)
opts = opts.WithAttributeNameMap(map[string]string{
"account_id": "AccountId",
"policy_document": "PolicyDocument",
"policy_name": "PolicyName",
"policy_type": "PolicyType",
"scope": "Scope",
"selection_criteria": "SelectionCriteria",
})
v, err := generic.NewSingularDataSource(ctx, opts...)
if err != nil {
return nil, err
}
return v, nil
}