Skip to content

Commit 88d5c14

Browse files
author
Marco Franceschi
committed
feat: Included groupOption and parameterGroup for dbInstance
1 parent af41b86 commit 88d5c14

3 files changed

Lines changed: 72 additions & 20 deletions

File tree

src/services/rdsDbInstance/format.ts

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1+
import { generateUniqueId } from '@cloudgraph/sdk'
2+
13
import upperFirst from 'lodash/upperFirst'
24
import { RawAwsRdsDbInstance } from './data'
3-
import {
4-
AwsRdsDbInstance,
5+
import {
6+
AwsRdsDbInstance,
57
} from '../../types/generated'
68
import { formatTagsFromMap } from '../../utils/format'
79

810
export default ({
911
service,
1012
account,
1113
region
12-
}:
13-
{
14-
service: RawAwsRdsDbInstance
15-
account: string
16-
region: string
17-
}): AwsRdsDbInstance => {
14+
}:
15+
{
16+
service: RawAwsRdsDbInstance
17+
account: string
18+
region: string
19+
}): AwsRdsDbInstance => {
1820
const {
1921
DBInstanceArn: arn,
2022
DBInstanceIdentifier: dBInstanceIdentifier,
@@ -46,15 +48,36 @@ export default ({
4648

4749
const subnetGroup = service.DBSubnetGroup?.DBSubnetGroupName || ''
4850

49-
const parameterGroup = service.DBParameterGroups.map(
50-
({ DBParameterGroupName, ParameterApplyStatus }) =>
51-
`${DBParameterGroupName} (${ParameterApplyStatus})`
52-
).join(' | ')
51+
const parameterGroups = service.DBParameterGroups.map(
52+
(parameter) => {
53+
const { DBParameterGroupName, ParameterApplyStatus } = parameter
54+
return ({
55+
id: generateUniqueId({
56+
arn,
57+
...parameter
58+
}),
59+
description: `${DBParameterGroupName} (${ParameterApplyStatus})`,
60+
name: DBParameterGroupName,
61+
status: ParameterApplyStatus
62+
})
63+
}
64+
)
5365

5466
const optionsGroups = service.OptionGroupMemberships.map(
55-
({ OptionGroupName, Status }) =>
56-
`${OptionGroupName} (${upperFirst(Status)})`
57-
).join(' | ')
67+
(option) => {
68+
const { OptionGroupName, Status } = option
69+
return ({
70+
id: generateUniqueId({
71+
arn,
72+
...option
73+
}),
74+
description: `${OptionGroupName} (${upperFirst(Status)})`,
75+
groupName: OptionGroupName,
76+
status: Status
77+
})
78+
}
79+
80+
)
5881

5982
return {
6083
id: arn,
@@ -77,7 +100,7 @@ export default ({
77100
autoMinorVersionUpgrade,
78101
iamDbAuthenticationEnabled,
79102
optionsGroups,
80-
parameterGroup,
103+
parameterGroups,
81104
storageType,
82105
instanceClass,
83106
allocatedStorage,

src/services/rdsDbInstance/schema.graphql

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
type awsRdsDbInstanceParameterGroup {
2+
id: String! @id
3+
name: String @search(by: [hash, regexp])
4+
status: String @search(by: [hash, regexp])
5+
description: String @search(by: [hash, regexp])
6+
}
7+
8+
type awsRdsDbInstanceGroupOption {
9+
id: String! @id
10+
groupName: String @search(by: [hash, regexp])
11+
status: String @search(by: [hash, regexp])
12+
description: String @search(by: [hash, regexp])
13+
}
14+
15+
116
type awsRdsDbInstance implements awsBaseService @key(fields: "arn") {
217
name: String @search(by: [hash, regexp])
318
port: Int @search
@@ -14,8 +29,8 @@ type awsRdsDbInstance implements awsBaseService @key(fields: "arn") {
1429
performanceInsightsEnabled: Boolean @search
1530
autoMinorVersionUpgrade: Boolean @search
1631
iamDbAuthenticationEnabled: Boolean @search
17-
optionsGroups: String
18-
parameterGroup: String
32+
optionsGroups: [awsRdsDbInstanceGroupOption]
33+
parameterGroups: [awsRdsDbInstanceParameterGroup]
1934
storageType: String @search(by: [hash, regexp])
2035
instanceClass: String @search(by: [hash, regexp])
2136
allocatedStorage: Int @search

src/types/generated.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4036,8 +4036,8 @@ export type AwsRdsDbInstance = AwsBaseService & {
40364036
licenseModel?: Maybe<Scalars['String']>;
40374037
multiAZ?: Maybe<Scalars['Boolean']>;
40384038
name?: Maybe<Scalars['String']>;
4039-
optionsGroups?: Maybe<Scalars['String']>;
4040-
parameterGroup?: Maybe<Scalars['String']>;
4039+
optionsGroups?: Maybe<Array<Maybe<AwsRdsDbInstanceGroupOption>>>;
4040+
parameterGroups?: Maybe<Array<Maybe<AwsRdsDbInstanceParameterGroup>>>;
40414041
performanceInsightsEnabled?: Maybe<Scalars['Boolean']>;
40424042
port?: Maybe<Scalars['Int']>;
40434043
publiclyAccessible?: Maybe<Scalars['Boolean']>;
@@ -4053,6 +4053,20 @@ export type AwsRdsDbInstance = AwsBaseService & {
40534053
vpc?: Maybe<Array<Maybe<AwsVpc>>>;
40544054
};
40554055

4056+
export type AwsRdsDbInstanceGroupOption = {
4057+
description?: Maybe<Scalars['String']>;
4058+
groupName?: Maybe<Scalars['String']>;
4059+
id: Scalars['String'];
4060+
status?: Maybe<Scalars['String']>;
4061+
};
4062+
4063+
export type AwsRdsDbInstanceParameterGroup = {
4064+
description?: Maybe<Scalars['String']>;
4065+
id: Scalars['String'];
4066+
name?: Maybe<Scalars['String']>;
4067+
status?: Maybe<Scalars['String']>;
4068+
};
4069+
40564070
export type AwsRecorderStatus = {
40574071
lastStartTime?: Maybe<Scalars['String']>;
40584072
lastStatus?: Maybe<Scalars['String']>;

0 commit comments

Comments
 (0)