Documentation
¶
Index ¶
- Constants
- Variables
- func DataSource() datasource.DataSource
- func FilterUserDefinedLimits(allAtlasLimits []admin.DataFederationLimit, tflimits []TfLimitModel) []admin.DataFederationLimit
- func GetProjectPropsFromAPI(ctx context.Context, client GroupProjectService, projectID string) (*admin.PaginatedTeamRole, []admin.DataFederationLimit, *admin.GroupSettings, ...)
- func NewGroupName(tfProject *TfProjectRSModel) *admin.GroupName
- func NewTeamRoleList(ctx context.Context, teams []TfTeamModel) *[]admin.TeamRole
- func NewTfLimitModelMap(limits []TfLimitModel) map[types.String]TfLimitModel
- func NewTfTeamModelMap(teams []TfTeamModel) map[types.String]TfTeamModel
- func PluralDataSource() datasource.DataSource
- func Resource() resource.Resource
- func ResourceProjectDependentsDeletingRefreshFunc(ctx context.Context, projectID string, client GroupProjectService) retry.StateRefreshFunc
- func UpdateProject(ctx context.Context, client GroupProjectService, ...) error
- func UpdateProjectLimits(ctx context.Context, client GroupProjectService, ...) error
- func UpdateProjectTeams(ctx context.Context, client GroupProjectService, ...) error
- type AtlasProjectDependants
- type GroupProjectService
- type GroupProjectServiceFromClient
- func (a *GroupProjectServiceFromClient) AddAllTeamsToProject(ctx context.Context, groupID string, teamRole *[]admin.TeamRole) (*admin.PaginatedTeamRole, *http.Response, error)
- func (a *GroupProjectServiceFromClient) DeleteProjectLimit(ctx context.Context, limitName, projectID string) (map[string]interface{}, *http.Response, error)
- func (a *GroupProjectServiceFromClient) GetProjectSettings(ctx context.Context, groupID string) (*admin.GroupSettings, *http.Response, error)
- func (a *GroupProjectServiceFromClient) ListClusters(ctx context.Context, groupID string) (*admin.PaginatedAdvancedClusterDescription, *http.Response, error)
- func (a *GroupProjectServiceFromClient) ListProjectLimits(ctx context.Context, groupID string) ([]admin.DataFederationLimit, *http.Response, error)
- func (a *GroupProjectServiceFromClient) ListProjectTeams(ctx context.Context, groupID string) (*admin.PaginatedTeamRole, *http.Response, error)
- func (a *GroupProjectServiceFromClient) RemoveProjectTeam(ctx context.Context, groupID, teamID string) (*http.Response, error)
- func (a *GroupProjectServiceFromClient) SetProjectLimit(ctx context.Context, limitName, groupID string, ...) (*admin.DataFederationLimit, *http.Response, error)
- func (a *GroupProjectServiceFromClient) UpdateProject(ctx context.Context, groupID string, groupName *admin.GroupName) (*admin.Group, *http.Response, error)
- func (a *GroupProjectServiceFromClient) UpdateTeamRoles(ctx context.Context, groupID, teamID string, teamRole *admin.TeamRole) (*admin.PaginatedTeamRole, *http.Response, error)
- type ProjectsDS
- type TfLimitModel
- type TfProjectDSModel
- type TfProjectRSModel
- type TfTeamDSModel
- type TfTeamModel
Constants ¶
View Source
const (
ErrorProjectRead = "error getting project(%s): %s"
)
Variables ¶
View Source
var TfLimitObjectType = types.ObjectType{AttrTypes: map[string]attr.Type{ "name": types.StringType, "value": types.Int64Type, "current_usage": types.Int64Type, "default_limit": types.Int64Type, "maximum_limit": types.Int64Type, }}
View Source
var TfTeamObjectType = types.ObjectType{AttrTypes: map[string]attr.Type{ "team_id": types.StringType, "role_names": types.SetType{ElemType: types.StringType}, }}
Functions ¶
func DataSource ¶
func DataSource() datasource.DataSource
func FilterUserDefinedLimits ¶
func FilterUserDefinedLimits(allAtlasLimits []admin.DataFederationLimit, tflimits []TfLimitModel) []admin.DataFederationLimit
func GetProjectPropsFromAPI ¶
func GetProjectPropsFromAPI(ctx context.Context, client GroupProjectService, projectID string) (*admin.PaginatedTeamRole, []admin.DataFederationLimit, *admin.GroupSettings, error)
func NewGroupName ¶
func NewGroupName(tfProject *TfProjectRSModel) *admin.GroupName
func NewTeamRoleList ¶
func NewTeamRoleList(ctx context.Context, teams []TfTeamModel) *[]admin.TeamRole
func NewTfLimitModelMap ¶
func NewTfLimitModelMap(limits []TfLimitModel) map[types.String]TfLimitModel
func NewTfTeamModelMap ¶
func NewTfTeamModelMap(teams []TfTeamModel) map[types.String]TfTeamModel
func PluralDataSource ¶
func PluralDataSource() datasource.DataSource
func ResourceProjectDependentsDeletingRefreshFunc ¶
func ResourceProjectDependentsDeletingRefreshFunc(ctx context.Context, projectID string, client GroupProjectService) retry.StateRefreshFunc
resourceProjectDependentsDeletingRefreshFunc assumes the project CRUD outcome will be the same for any non-zero number of dependents
If all dependents are deleting, wait to try and delete Else consider the aggregate dependents idle.
If we get a defined error response, return that right away Else retry
func UpdateProject ¶
func UpdateProject(ctx context.Context, client GroupProjectService, projectState, projectPlan *TfProjectRSModel) error
func UpdateProjectLimits ¶
func UpdateProjectLimits(ctx context.Context, client GroupProjectService, projectState, projectPlan *TfProjectRSModel) error
func UpdateProjectTeams ¶
func UpdateProjectTeams(ctx context.Context, client GroupProjectService, projectState, projectPlan *TfProjectRSModel) error
Types ¶
type AtlasProjectDependants ¶
type AtlasProjectDependants struct {
AdvancedClusters *admin.PaginatedAdvancedClusterDescription
}
Resources that need to be cleaned up before a project can be deleted
type GroupProjectService ¶
type GroupProjectService interface { UpdateProject(ctx context.Context, groupID string, groupName *admin.GroupName) (*admin.Group, *http.Response, error) ListProjectTeams(ctx context.Context, groupID string) (*admin.PaginatedTeamRole, *http.Response, error) GetProjectSettings(ctx context.Context, groupID string) (*admin.GroupSettings, *http.Response, error) DeleteProjectLimit(ctx context.Context, limitName, projectID string) (map[string]interface{}, *http.Response, error) SetProjectLimit(ctx context.Context, limitName, groupID string, dataFederationLimit *admin.DataFederationLimit) (*admin.DataFederationLimit, *http.Response, error) ListProjectLimits(ctx context.Context, groupID string) ([]admin.DataFederationLimit, *http.Response, error) RemoveProjectTeam(ctx context.Context, groupID, teamID string) (*http.Response, error) UpdateTeamRoles(ctx context.Context, groupID, teamID string, teamRole *admin.TeamRole) (*admin.PaginatedTeamRole, *http.Response, error) AddAllTeamsToProject(ctx context.Context, groupID string, teamRole *[]admin.TeamRole) (*admin.PaginatedTeamRole, *http.Response, error) ListClusters(ctx context.Context, groupID string) (*admin.PaginatedAdvancedClusterDescription, *http.Response, error) }
func ServiceFromClient ¶
func ServiceFromClient(client *admin.APIClient) GroupProjectService
type GroupProjectServiceFromClient ¶
type GroupProjectServiceFromClient struct {
// contains filtered or unexported fields
}
func (*GroupProjectServiceFromClient) AddAllTeamsToProject ¶
func (*GroupProjectServiceFromClient) DeleteProjectLimit ¶
func (*GroupProjectServiceFromClient) GetProjectSettings ¶
func (a *GroupProjectServiceFromClient) GetProjectSettings(ctx context.Context, groupID string) (*admin.GroupSettings, *http.Response, error)
func (*GroupProjectServiceFromClient) ListClusters ¶
func (a *GroupProjectServiceFromClient) ListClusters(ctx context.Context, groupID string) (*admin.PaginatedAdvancedClusterDescription, *http.Response, error)
func (*GroupProjectServiceFromClient) ListProjectLimits ¶
func (a *GroupProjectServiceFromClient) ListProjectLimits(ctx context.Context, groupID string) ([]admin.DataFederationLimit, *http.Response, error)
func (*GroupProjectServiceFromClient) ListProjectTeams ¶
func (a *GroupProjectServiceFromClient) ListProjectTeams(ctx context.Context, groupID string) (*admin.PaginatedTeamRole, *http.Response, error)
func (*GroupProjectServiceFromClient) RemoveProjectTeam ¶
func (*GroupProjectServiceFromClient) SetProjectLimit ¶
func (a *GroupProjectServiceFromClient) SetProjectLimit(ctx context.Context, limitName, groupID string, dataFederationLimit *admin.DataFederationLimit) (*admin.DataFederationLimit, *http.Response, error)
func (*GroupProjectServiceFromClient) UpdateProject ¶
func (*GroupProjectServiceFromClient) UpdateTeamRoles ¶
type ProjectsDS ¶
func (*ProjectsDS) Read ¶
func (d *ProjectsDS) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse)
func (*ProjectsDS) Schema ¶
func (d *ProjectsDS) Schema(ctx context.Context, req datasource.SchemaRequest, resp *datasource.SchemaResponse)
type TfLimitModel ¶
type TfLimitModel struct { Name types.String `tfsdk:"name"` Value types.Int64 `tfsdk:"value"` CurrentUsage types.Int64 `tfsdk:"current_usage"` DefaultLimit types.Int64 `tfsdk:"default_limit"` MaximumLimit types.Int64 `tfsdk:"maximum_limit"` }
func NewTFLimitsDataSourceModel ¶
func NewTFLimitsDataSourceModel(ctx context.Context, dataFederationLimits []admin.DataFederationLimit) []*TfLimitModel
type TfProjectDSModel ¶
type TfProjectDSModel struct { RegionUsageRestrictions types.String `tfsdk:"region_usage_restrictions"` ProjectID types.String `tfsdk:"project_id"` Name types.String `tfsdk:"name"` OrgID types.String `tfsdk:"org_id"` Created types.String `tfsdk:"created"` ID types.String `tfsdk:"id"` Limits []*TfLimitModel `tfsdk:"limits"` Teams []*TfTeamDSModel `tfsdk:"teams"` ClusterCount types.Int64 `tfsdk:"cluster_count"` IsCollectDatabaseSpecificsStatisticsEnabled types.Bool `tfsdk:"is_collect_database_specifics_statistics_enabled"` IsRealtimePerformancePanelEnabled types.Bool `tfsdk:"is_realtime_performance_panel_enabled"` IsSchemaAdvisorEnabled types.Bool `tfsdk:"is_schema_advisor_enabled"` IsPerformanceAdvisorEnabled types.Bool `tfsdk:"is_performance_advisor_enabled"` IsExtendedStorageSizesEnabled types.Bool `tfsdk:"is_extended_storage_sizes_enabled"` IsDataExplorerEnabled types.Bool `tfsdk:"is_data_explorer_enabled"` }
func NewTFProjectDataSourceModel ¶
func NewTFProjectDataSourceModel(ctx context.Context, project *admin.Group, teams *admin.PaginatedTeamRole, projectSettings *admin.GroupSettings, limits []admin.DataFederationLimit) TfProjectDSModel
type TfProjectRSModel ¶
type TfProjectRSModel struct { Limits types.Set `tfsdk:"limits"` Teams types.Set `tfsdk:"teams"` RegionUsageRestrictions types.String `tfsdk:"region_usage_restrictions"` Name types.String `tfsdk:"name"` OrgID types.String `tfsdk:"org_id"` Created types.String `tfsdk:"created"` ProjectOwnerID types.String `tfsdk:"project_owner_id"` ID types.String `tfsdk:"id"` ClusterCount types.Int64 `tfsdk:"cluster_count"` IsDataExplorerEnabled types.Bool `tfsdk:"is_data_explorer_enabled"` IsPerformanceAdvisorEnabled types.Bool `tfsdk:"is_performance_advisor_enabled"` IsRealtimePerformancePanelEnabled types.Bool `tfsdk:"is_realtime_performance_panel_enabled"` IsSchemaAdvisorEnabled types.Bool `tfsdk:"is_schema_advisor_enabled"` IsExtendedStorageSizesEnabled types.Bool `tfsdk:"is_extended_storage_sizes_enabled"` IsCollectDatabaseSpecificsStatisticsEnabled types.Bool `tfsdk:"is_collect_database_specifics_statistics_enabled"` WithDefaultAlertsSettings types.Bool `tfsdk:"with_default_alerts_settings"` }
func NewTFProjectResourceModel ¶
func NewTFProjectResourceModel(ctx context.Context, projectRes *admin.Group, teams *admin.PaginatedTeamRole, projectSettings *admin.GroupSettings, limits []admin.DataFederationLimit) *TfProjectRSModel
type TfTeamDSModel ¶
type TfTeamDSModel struct { TeamID types.String `tfsdk:"team_id"` RoleNames types.List `tfsdk:"role_names"` }
func NewTFTeamsDataSourceModel ¶
func NewTFTeamsDataSourceModel(ctx context.Context, atlasTeams *admin.PaginatedTeamRole) []*TfTeamDSModel
Click to show internal directories.
Click to hide internal directories.