diff --git a/docs/api/graphql/v1/guides/mutations.mdx b/docs/api/graphql/v1/guides/mutations.mdx index 8a70fb6..55df9ff 100644 --- a/docs/api/graphql/v1/guides/mutations.mdx +++ b/docs/api/graphql/v1/guides/mutations.mdx @@ -46,37 +46,6 @@ All mutations return a payload object with: | `result` | Resource type | The created/updated resource (null on failure) | | `messages` | `[ValidationMessage]` | Validation errors (empty on success) | -## Identifier Pattern - -When creating resources, you provide a short `id` in the input: - -```graphql -input: { - id: "staging" # Short identifier you choose - name: "Staging" -} -``` - -The API returns a full identifier that includes parent context: - -```json -{ - "result": { - "id": "myproj-staging" # Full identifier - } -} -``` - -Use the full identifier for subsequent queries and mutations: - -```graphql -query { - environment(organizationId: "acme", id: "myproj-staging") { - name - } -} -``` - ## Common Mutations ### Create Project diff --git a/docs/api/graphql/v1/operations/mutations/add-service-account-to-group.mdx b/docs/api/graphql/v1/operations/mutations/add-service-account-to-group.mdx new file mode 100644 index 0000000..86c8054 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/add-service-account-to-group.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: add-service-account-to-group +title: addServiceAccountToGroup +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Add a service account to a group, granting it the group's access level. + + +```graphql +addServiceAccountToGroup( + organizationId: ID! + serviceAccountId: ID! + groupId: ID! +): ServiceAccountGroupPayload +``` + + + + +### Arguments + +#### [addServiceAccountToGroup.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [addServiceAccountToGroup.serviceAccountId](#service-account-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#service-account-id\} +The service account ID + + +#### [addServiceAccountToGroup.groupId](#group-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#group-id\} +The group ID to add the service account to + + +### Type + +#### [ServiceAccountGroupPayload](/api/graphql/v1/types/objects/service-account-group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-access-token.mdx b/docs/api/graphql/v1/operations/mutations/create-access-token.mdx new file mode 100644 index 0000000..6289568 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-access-token.mdx @@ -0,0 +1,86 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-access-token +title: createAccessToken +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a scoped, time-limited access token. The token value is only returned in this response. + + + + +```graphql +createAccessToken( + organizationId: ID! + input: CreateAccessTokenInput! +): AccessTokenWithValuePayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/createAccessToken.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/createAccessToken.ui.json) + + + +### Arguments + +#### [createAccessToken.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createAccessToken.input](#input)[CreateAccessTokenInput!](/api/graphql/v1/types/inputs/create-access-token-input.mdx) \{#input\} +Create a scoped, time-limited access token for API authentication. + + +### Type + +#### [AccessTokenWithValuePayload](/api/graphql/v1/types/objects/access-token-with-value-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-group-invitation.mdx b/docs/api/graphql/v1/operations/mutations/create-group-invitation.mdx new file mode 100644 index 0000000..98a9124 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-group-invitation.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-group-invitation +title: createGroupInvitation +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Invite a user to a group by email address. + + +```graphql +createGroupInvitation( + organizationId: ID! + groupId: ID! + email: String! +): GroupInvitationPayload +``` + + + + +### Arguments + +#### [createGroupInvitation.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createGroupInvitation.groupId](#group-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#group-id\} +The group ID to invite the user to + + +#### [createGroupInvitation.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the user to invite + + +### Type + +#### [GroupInvitationPayload](/api/graphql/v1/types/objects/group-invitation-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-group.mdx b/docs/api/graphql/v1/operations/mutations/create-group.mdx new file mode 100644 index 0000000..951eb61 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-group.mdx @@ -0,0 +1,86 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-group +title: createGroup +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a new group in your organization. + + + + +```graphql +createGroup( + organizationId: ID! + input: CreateGroupInput! +): GroupPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/createGroup.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/createGroup.ui.json) + + + +### Arguments + +#### [createGroup.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createGroup.input](#input)[CreateGroupInput!](/api/graphql/v1/types/inputs/create-group-input.mdx) \{#input\} +Create a new group. Groups control which projects members can access. + + +### Type + +#### [GroupPayload](/api/graphql/v1/types/objects/group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-integration.mdx b/docs/api/graphql/v1/operations/mutations/create-integration.mdx new file mode 100644 index 0000000..b385019 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-integration.mdx @@ -0,0 +1,91 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-integration +title: createIntegration +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create and activate an integration for your organization. + + + + +```graphql +createIntegration( + organizationId: ID! + id: ID! + input: CreateIntegrationInput! +): IntegrationActivationPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/createIntegration.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/createIntegration.ui.json) + + + +### Arguments + +#### [createIntegration.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createIntegration.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The integration type to configure (e.g., 'aws-cost-and-usage-reports') + + +#### [createIntegration.input](#input)[CreateIntegrationInput!](/api/graphql/v1/types/inputs/create-integration-input.mdx) \{#input\} +Create and activate an integration for your organization. The config and auth payloads must conform to the integration type's configSchema and authSchema respectively. + + +### Type + +#### [IntegrationActivationPayload](/api/graphql/v1/types/objects/integration-activation-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx b/docs/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx new file mode 100644 index 0000000..98f10b6 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx @@ -0,0 +1,86 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-organization-tag-constraint +title: createOrganizationTagConstraint +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a new tag constraint in your organization. + + + + +```graphql +createOrganizationTagConstraint( + organizationId: ID! + input: CreateOrganizationTagConstraintInput! +): OrganizationTagConstraintPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/createOrganizationTagConstraint.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/createOrganizationTagConstraint.ui.json) + + + +### Arguments + +#### [createOrganizationTagConstraint.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createOrganizationTagConstraint.input](#input)[CreateOrganizationTagConstraintInput!](/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx) \{#input\} +Define a structural tag constraint for your organization. Tag constraints control which tags can be set on resources at each level of the hierarchy. + + +### Type + +#### [OrganizationTagConstraintPayload](/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/create-service-account.mdx b/docs/api/graphql/v1/operations/mutations/create-service-account.mdx new file mode 100644 index 0000000..bcd84ee --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/create-service-account.mdx @@ -0,0 +1,86 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-service-account +title: createServiceAccount +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a new service account. The secret token is only returned in this response. + + + + +```graphql +createServiceAccount( + organizationId: ID! + input: CreateServiceAccountInput! +): ServiceAccountWithSecretPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/createServiceAccount.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/createServiceAccount.ui.json) + + + +### Arguments + +#### [createServiceAccount.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [createServiceAccount.input](#input)[CreateServiceAccountInput!](/api/graphql/v1/types/inputs/create-service-account-input.mdx) \{#input\} +Create a new service account for programmatic API access. + + +### Type + +#### [ServiceAccountWithSecretPayload](/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-group-invitation.mdx b/docs/api/graphql/v1/operations/mutations/delete-group-invitation.mdx new file mode 100644 index 0000000..c724305 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-group-invitation.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-group-invitation +title: deleteGroupInvitation +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a pending invitation from a group. + + +```graphql +deleteGroupInvitation( + organizationId: ID! + groupId: ID! + email: String! +): GroupInvitationPayload +``` + + + + +### Arguments + +#### [deleteGroupInvitation.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteGroupInvitation.groupId](#group-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#group-id\} +The group ID + + +#### [deleteGroupInvitation.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the invitation to remove + + +### Type + +#### [GroupInvitationPayload](/api/graphql/v1/types/objects/group-invitation-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-group-member.mdx b/docs/api/graphql/v1/operations/mutations/delete-group-member.mdx new file mode 100644 index 0000000..221bd51 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-group-member.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-group-member +title: deleteGroupMember +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a member from a group. + + +```graphql +deleteGroupMember( + organizationId: ID! + groupId: ID! + email: String! +): GroupMemberPayload +``` + + + + +### Arguments + +#### [deleteGroupMember.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteGroupMember.groupId](#group-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#group-id\} +The group ID + + +#### [deleteGroupMember.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the member to remove + + +### Type + +#### [GroupMemberPayload](/api/graphql/v1/types/objects/group-member-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-group.mdx b/docs/api/graphql/v1/operations/mutations/delete-group.mdx new file mode 100644 index 0000000..0194670 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-group.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-group +title: deleteGroup +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Delete a custom group. Predefined organization groups cannot be deleted. + + +```graphql +deleteGroup( + organizationId: ID! + id: ID! +): GroupPayload +``` + + + + +### Arguments + +#### [deleteGroup.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteGroup.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The group ID to delete + + +### Type + +#### [GroupPayload](/api/graphql/v1/types/objects/group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-integration.mdx b/docs/api/graphql/v1/operations/mutations/delete-integration.mdx new file mode 100644 index 0000000..66c04a5 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-integration.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-integration +title: deleteIntegration +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Delete an integration. This disables it first, then removes the configuration. + + +```graphql +deleteIntegration( + organizationId: ID! + id: ID! +): IntegrationPayload +``` + + + + +### Arguments + +#### [deleteIntegration.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteIntegration.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The integration type ID to delete + + +### Type + +#### [IntegrationPayload](/api/graphql/v1/types/objects/integration-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-organization-member.mdx b/docs/api/graphql/v1/operations/mutations/delete-organization-member.mdx new file mode 100644 index 0000000..9e2983a --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-organization-member.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-organization-member +title: deleteOrganizationMember +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a member from the organization. Deletes all group memberships and pending invitations. + + +```graphql +deleteOrganizationMember( + organizationId: ID! + email: String! +): DeletedOrganizationMemberPayload +``` + + + + +### Arguments + +#### [deleteOrganizationMember.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteOrganizationMember.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the member to remove + + +### Type + +#### [DeletedOrganizationMemberPayload](/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-organization-tag-constraint.mdx b/docs/api/graphql/v1/operations/mutations/delete-organization-tag-constraint.mdx new file mode 100644 index 0000000..caa6ac4 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-organization-tag-constraint.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-organization-tag-constraint +title: deleteOrganizationTagConstraint +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Delete a tag constraint from your organization. + + +```graphql +deleteOrganizationTagConstraint( + organizationId: ID! + id: ID! +): OrganizationTagConstraintPayload +``` + + + + +### Arguments + +#### [deleteOrganizationTagConstraint.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteOrganizationTagConstraint.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The tag constraint ID to delete + + +### Type + +#### [OrganizationTagConstraintPayload](/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/delete-service-account.mdx b/docs/api/graphql/v1/operations/mutations/delete-service-account.mdx new file mode 100644 index 0000000..07bc49d --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/delete-service-account.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: delete-service-account +title: deleteServiceAccount +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Delete a service account. This action cannot be undone. + + +```graphql +deleteServiceAccount( + organizationId: ID! + id: ID! +): ServiceAccountPayload +``` + + + + +### Arguments + +#### [deleteServiceAccount.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [deleteServiceAccount.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The service account ID to delete + + +### Type + +#### [ServiceAccountPayload](/api/graphql/v1/types/objects/service-account-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/remove-remote-reference.mdx b/docs/api/graphql/v1/operations/mutations/remove-remote-reference.mdx new file mode 100644 index 0000000..e98409a --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/remove-remote-reference.mdx @@ -0,0 +1,90 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: remove-remote-reference +title: removeRemoteReference +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a remote reference from an instance. + +The reference can only be removed if no provisioned instances are connected +through it. Removing the last remote reference resets the instance status +from EXTERNAL back to INITIALIZED. + + + + +```graphql +removeRemoteReference( + organizationId: ID! + input: RemoveRemoteReferenceInput! +): RemoteReferencePayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/removeRemoteReference.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/removeRemoteReference.ui.json) + + + +### Arguments + +#### [removeRemoteReference.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [removeRemoteReference.input](#input)[RemoveRemoteReferenceInput!](/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx) \{#input\} +Remove a remote reference from an instance. The reference can only be removed if no provisioned instances are connected through it. + + +### Type + +#### [RemoteReferencePayload](/api/graphql/v1/types/objects/remote-reference-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/remove-service-account-from-group.mdx b/docs/api/graphql/v1/operations/mutations/remove-service-account-from-group.mdx new file mode 100644 index 0000000..62f7385 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/remove-service-account-from-group.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: remove-service-account-from-group +title: removeServiceAccountFromGroup +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a service account from a group. + + +```graphql +removeServiceAccountFromGroup( + organizationId: ID! + serviceAccountId: ID! + groupId: ID! +): ServiceAccountGroupPayload +``` + + + + +### Arguments + +#### [removeServiceAccountFromGroup.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [removeServiceAccountFromGroup.serviceAccountId](#service-account-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#service-account-id\} +The service account ID + + +#### [removeServiceAccountFromGroup.groupId](#group-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#group-id\} +The group ID to remove the service account from + + +### Type + +#### [ServiceAccountGroupPayload](/api/graphql/v1/types/objects/service-account-group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/revoke-access-token.mdx b/docs/api/graphql/v1/operations/mutations/revoke-access-token.mdx new file mode 100644 index 0000000..92ddb88 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/revoke-access-token.mdx @@ -0,0 +1,70 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: revoke-access-token +title: revokeAccessToken +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Revoke an access token. The token immediately stops working but the record is preserved for audit. + + +```graphql +revokeAccessToken( + organizationId: ID! + id: ID! +): AccessTokenPayload +``` + + + + +### Arguments + +#### [revokeAccessToken.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [revokeAccessToken.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The access token ID to revoke + + +### Type + +#### [AccessTokenPayload](/api/graphql/v1/types/objects/access-token-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/set-component-position.mdx b/docs/api/graphql/v1/operations/mutations/set-component-position.mdx new file mode 100644 index 0000000..5920442 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/set-component-position.mdx @@ -0,0 +1,96 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: set-component-position +title: setComponentPosition +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Set the position of a component on the canvas. + + + + +```graphql +setComponentPosition( + organizationId: ID! + projectId: ID! + id: ID! + input: SetComponentPositionInput! +): ComponentPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/setComponentPosition.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/setComponentPosition.ui.json) + + + +### Arguments + +#### [setComponentPosition.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [setComponentPosition.projectId](#project-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#project-id\} +The project ID + + +#### [setComponentPosition.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The component ID + + +#### [setComponentPosition.input](#input)[SetComponentPositionInput!](/api/graphql/v1/types/inputs/set-component-position-input.mdx) \{#input\} +Set the position of a component on the canvas. + + +### Type + +#### [ComponentPayload](/api/graphql/v1/types/objects/component-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/set-remote-reference.mdx b/docs/api/graphql/v1/operations/mutations/set-remote-reference.mdx new file mode 100644 index 0000000..7936729 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/set-remote-reference.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: set-remote-reference +title: setRemoteReference +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Set a remote reference on an instance. + +Links an instance's resource field to a resource from another project or +an imported resource. The instance must not be in a provisioned or failed state. + + + + +```graphql +setRemoteReference( + organizationId: ID! + input: SetRemoteReferenceInput! +): RemoteReferencePayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/setRemoteReference.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/setRemoteReference.ui.json) + + + +### Arguments + +#### [setRemoteReference.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [setRemoteReference.input](#input)[SetRemoteReferenceInput!](/api/graphql/v1/types/inputs/set-remote-reference-input.mdx) \{#input\} +Link an instance's resource field to a resource from another project or an imported resource. The instance must not be in a provisioned or failed state. + + +### Type + +#### [RemoteReferencePayload](/api/graphql/v1/types/objects/remote-reference-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/mutations/update-group.mdx b/docs/api/graphql/v1/operations/mutations/update-group.mdx new file mode 100644 index 0000000..c199d45 --- /dev/null +++ b/docs/api/graphql/v1/operations/mutations/update-group.mdx @@ -0,0 +1,91 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: update-group +title: updateGroup +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Update a group's name or description. + + + + +```graphql +updateGroup( + organizationId: ID! + id: ID! + input: UpdateGroupInput! +): GroupPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v1/inputs/updateGroup.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v1/inputs/updateGroup.ui.json) + + + +### Arguments + +#### [updateGroup.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [updateGroup.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The group ID to update + + +#### [updateGroup.input](#input)[UpdateGroupInput!](/api/graphql/v1/types/inputs/update-group-input.mdx) \{#input\} +Update a group's name or description. + + +### Type + +#### [GroupPayload](/api/graphql/v1/types/objects/group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/audit-log.mdx b/docs/api/graphql/v1/operations/queries/audit-log.mdx new file mode 100644 index 0000000..291fbcf --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/audit-log.mdx @@ -0,0 +1,71 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-log +title: auditLog +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Get a single audit log event by its ID. + + +```graphql +auditLog( + organizationId: ID! + id: ID! +): AuditLog +``` + + + + +### Arguments + +#### [auditLog.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [auditLog.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The audit log event ID + + +### Type + +#### [AuditLog](/api/graphql/v1/types/objects/audit-log.mdx) +An audit log event with full details. \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/audit-logs.mdx b/docs/api/graphql/v1/operations/queries/audit-logs.mdx new file mode 100644 index 0000000..2234251 --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/audit-logs.mdx @@ -0,0 +1,80 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-logs +title: auditLogs +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +List audit log events for your organization. Returns newest first by default. + + +```graphql +auditLogs( + organizationId: ID! + filter: AuditLogsFilter + sort: AuditLogsSort + cursor: Cursor +): AuditLogsPage +``` + + + + +### Arguments + +#### [auditLogs.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [auditLogs.filter](#filter)[AuditLogsFilter](/api/graphql/v1/types/inputs/audit-logs-filter.mdx) \{#filter\} +Filter results + + +#### [auditLogs.sort](#sort)[AuditLogsSort](/api/graphql/v1/types/inputs/audit-logs-sort.mdx) \{#sort\} +How to sort results + + +#### [auditLogs.cursor](#cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#cursor\} +Pagination cursor from a previous response + + +### Type + +#### [AuditLogsPage](/api/graphql/v1/types/objects/audit-logs-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/group.mdx b/docs/api/graphql/v1/operations/queries/group.mdx new file mode 100644 index 0000000..42f71d8 --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/group.mdx @@ -0,0 +1,71 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group +title: group +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Get a single group by its ID. + + +```graphql +group( + organizationId: ID! + id: ID! +): Group +``` + + + + +### Arguments + +#### [group.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [group.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The group ID + + +### Type + +#### [Group](/api/graphql/v1/types/objects/group.mdx) +A group with its full details. \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/groups.mdx b/docs/api/graphql/v1/operations/queries/groups.mdx new file mode 100644 index 0000000..b93f1bf --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/groups.mdx @@ -0,0 +1,75 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: groups +title: groups +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +List all groups in your organization. Returns a paginated list. + + +```graphql +groups( + organizationId: ID! + sort: GroupsSort + cursor: Cursor +): GroupsPage +``` + + + + +### Arguments + +#### [groups.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [groups.sort](#sort)[GroupsSort](/api/graphql/v1/types/inputs/groups-sort.mdx) \{#sort\} +How to sort results + + +#### [groups.cursor](#cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#cursor\} +Pagination cursor from a previous response + + +### Type + +#### [GroupsPage](/api/graphql/v1/types/objects/groups-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/integration-types.mdx b/docs/api/graphql/v1/operations/queries/integration-types.mdx new file mode 100644 index 0000000..ddeabad --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/integration-types.mdx @@ -0,0 +1,65 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-types +title: integrationTypes +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +List all supported integration types. Use these to discover what integrations are available and their configuration schemas. + + +```graphql +integrationTypes( + organizationId: ID! +): IntegrationTypesPage +``` + + + + +### Arguments + +#### [integrationTypes.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +### Type + +#### [IntegrationTypesPage](/api/graphql/v1/types/objects/integration-types-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/integration.mdx b/docs/api/graphql/v1/operations/queries/integration.mdx new file mode 100644 index 0000000..2f1971c --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/integration.mdx @@ -0,0 +1,71 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration +title: integration +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Get a single integration by its type ID. + + +```graphql +integration( + organizationId: ID! + id: ID! +): Integration +``` + + + + +### Arguments + +#### [integration.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [integration.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +The integration type ID (e.g., 'aws-cost-and-usage-reports') + + +### Type + +#### [Integration](/api/graphql/v1/types/objects/integration.mdx) +A configured integration with its full details. \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/integrations.mdx b/docs/api/graphql/v1/operations/queries/integrations.mdx new file mode 100644 index 0000000..c20b122 --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/integrations.mdx @@ -0,0 +1,80 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integrations +title: integrations +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +List your organization's configured integrations. + + +```graphql +integrations( + organizationId: ID! + filter: IntegrationsFilter + sort: IntegrationsSort + cursor: Cursor +): IntegrationsPage +``` + + + + +### Arguments + +#### [integrations.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +#### [integrations.filter](#filter)[IntegrationsFilter](/api/graphql/v1/types/inputs/integrations-filter.mdx) \{#filter\} +Filter results + + +#### [integrations.sort](#sort)[IntegrationsSort](/api/graphql/v1/types/inputs/integrations-sort.mdx) \{#sort\} +How to sort results + + +#### [integrations.cursor](#cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#cursor\} +Pagination cursor from a previous response + + +### Type + +#### [IntegrationsPage](/api/graphql/v1/types/objects/integrations-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/operations/queries/organization.mdx b/docs/api/graphql/v1/operations/queries/organization.mdx new file mode 100644 index 0000000..90fc4fa --- /dev/null +++ b/docs/api/graphql/v1/operations/queries/organization.mdx @@ -0,0 +1,66 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization +title: organization +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Get your organization and its settings. + + +```graphql +organization( + organizationId: ID! +): Organization +``` + + + + +### Arguments + +#### [organization.organizationId](#organization-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#organization-id\} +Your organization ID + + +### Type + +#### [Organization](/api/graphql/v1/types/objects/organization.mdx) +An organization with its full details and related resources. \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/audit-log-actor-type.mdx b/docs/api/graphql/v1/types/enums/audit-log-actor-type.mdx new file mode 100644 index 0000000..2d009be --- /dev/null +++ b/docs/api/graphql/v1/types/enums/audit-log-actor-type.mdx @@ -0,0 +1,84 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-log-actor-type +title: AuditLogActorType +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +The type of actor that performed an action. + + +```graphql +enum AuditLogActorType { + ACCOUNT + SERVICE_ACCOUNT + DEPLOYMENT + SYSTEM +} +``` + + + + +### Values + +#### [AuditLogActorType.ACCOUNT](#account) \{#account\} +Human user account + + +#### [AuditLogActorType.SERVICE_ACCOUNT](#service-account) \{#service-account\} +Service account (API key) + + +#### [AuditLogActorType.DEPLOYMENT](#deployment) \{#deployment\} +Automated deployment + + +#### [AuditLogActorType.SYSTEM](#system) \{#system\} +System action or legacy event + + + + + + +### Member Of + +[`AuditLogActorTypeFilter`](/api/graphql/v1/types/inputs/audit-log-actor-type-filter.mdx) [`V1AuditLogActor`](/api/graphql/v1/types/objects/v1-audit-log-actor.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/audit-logs-sort-field.mdx b/docs/api/graphql/v1/types/enums/audit-logs-sort-field.mdx new file mode 100644 index 0000000..cd49b92 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/audit-logs-sort-field.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-logs-sort-field +title: AuditLogsSortField +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Available fields for sorting audit logs. + + +```graphql +enum AuditLogsSortField { + OCCURRED_AT + TYPE +} +``` + + + + +### Values + +#### [AuditLogsSortField.OCCURRED_AT](#occurred-at) \{#occurred-at\} +Sort by when the event occurred + + +#### [AuditLogsSortField.TYPE](#type) \{#type\} +Sort by event type + + + + + + +### Member Of + +[`AuditLogsSort`](/api/graphql/v1/types/inputs/audit-logs-sort.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/group-role.mdx b/docs/api/graphql/v1/types/enums/group-role.mdx new file mode 100644 index 0000000..c53f0a6 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/group-role.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-role +title: GroupRole +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +The role of a group within an organization. + + +```graphql +enum GroupRole { + ORGANIZATION_ADMIN + ORGANIZATION_VIEWER + CUSTOM +} +``` + + + + +### Values + +#### [GroupRole.ORGANIZATION_ADMIN](#organization-admin) \{#organization-admin\} +Full administrative access to the organization + + +#### [GroupRole.ORGANIZATION_VIEWER](#organization-viewer) \{#organization-viewer\} +Read-only access to the organization + + +#### [GroupRole.CUSTOM](#custom) \{#custom\} +Custom role with project-level access grants + + + + + + +### Member Of + +[`Group`](/api/graphql/v1/types/objects/group.mdx) [`GroupLeaf`](/api/graphql/v1/types/objects/group-leaf.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/groups-sort-field.mdx b/docs/api/graphql/v1/types/enums/groups-sort-field.mdx new file mode 100644 index 0000000..368724f --- /dev/null +++ b/docs/api/graphql/v1/types/enums/groups-sort-field.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: groups-sort-field +title: GroupsSortField +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Available fields for sorting groups. + + +```graphql +enum GroupsSortField { + NAME + CREATED_AT +} +``` + + + + +### Values + +#### [GroupsSortField.NAME](#name) \{#name\} +Sort alphabetically by group name + + +#### [GroupsSortField.CREATED_AT](#created-at) \{#created-at\} +Sort by when the group was created + + + + + + +### Member Of + +[`GroupsSort`](/api/graphql/v1/types/inputs/groups-sort.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/integration-status.mdx b/docs/api/graphql/v1/types/enums/integration-status.mdx new file mode 100644 index 0000000..b52d473 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/integration-status.mdx @@ -0,0 +1,84 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-status +title: IntegrationStatus +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +The current status of an integration. + + +```graphql +enum IntegrationStatus { + DISABLED + DISABLING + ENABLING + ENABLED +} +``` + + + + +### Values + +#### [IntegrationStatus.DISABLED](#disabled) \{#disabled\} +Integration is inactive + + +#### [IntegrationStatus.DISABLING](#disabling) \{#disabling\} +Integration is being deactivated + + +#### [IntegrationStatus.ENABLING](#enabling) \{#enabling\} +Integration is being activated + + +#### [IntegrationStatus.ENABLED](#enabled) \{#enabled\} +Integration is active and running + + + + + + +### Member Of + +[`Integration`](/api/graphql/v1/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/v1/types/objects/integration-activation.mdx) [`IntegrationLeaf`](/api/graphql/v1/types/objects/integration-leaf.mdx) [`IntegrationStatusFilter`](/api/graphql/v1/types/inputs/integration-status-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/integrations-sort-field.mdx b/docs/api/graphql/v1/types/enums/integrations-sort-field.mdx new file mode 100644 index 0000000..6947be9 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/integrations-sort-field.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integrations-sort-field +title: IntegrationsSortField +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Available fields for sorting integrations. + + +```graphql +enum IntegrationsSortField { + CREATED_AT + ID +} +``` + + + + +### Values + +#### [IntegrationsSortField.CREATED_AT](#created-at) \{#created-at\} +Sort by when the integration was created + + +#### [IntegrationsSortField.ID](#id) \{#id\} +Sort alphabetically by integration type + + + + + + +### Member Of + +[`IntegrationsSort`](/api/graphql/v1/types/inputs/integrations-sort.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/organization-tag-constraints-sort-field.mdx b/docs/api/graphql/v1/types/enums/organization-tag-constraints-sort-field.mdx new file mode 100644 index 0000000..d94e855 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/organization-tag-constraints-sort-field.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraints-sort-field +title: OrganizationTagConstraintsSortField +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Available fields for sorting tag constraints. + + +```graphql +enum OrganizationTagConstraintsSortField { + KEY + SCOPE + CREATED_AT +} +``` + + + + +### Values + +#### [OrganizationTagConstraintsSortField.KEY](#key) \{#key\} +Sort alphabetically by tag key + + +#### [OrganizationTagConstraintsSortField.SCOPE](#scope) \{#scope\} +Sort by resource scope level + + +#### [OrganizationTagConstraintsSortField.CREATED_AT](#created-at) \{#created-at\} +Sort by when the constraint was created + + + + + + +### Member Of + +[`OrganizationTagConstraintsSort`](/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/sort-order.mdx b/docs/api/graphql/v1/types/enums/sort-order.mdx index 2fc1486..04f7791 100644 --- a/docs/api/graphql/v1/types/enums/sort-order.mdx +++ b/docs/api/graphql/v1/types/enums/sort-order.mdx @@ -71,4 +71,4 @@ Descending order (Z→A, newest→oldest) ### Member Of -[`ComponentsSort`](/api/graphql/v1/types/inputs/components-sort.mdx) [`DeploymentsSort`](/api/graphql/v1/types/inputs/deployments-sort.mdx) [`EnvironmentsSort`](/api/graphql/v1/types/inputs/environments-sort.mdx) [`IdentitiesSort`](/api/graphql/v1/types/inputs/identities-sort.mdx) [`InstancesSort`](/api/graphql/v1/types/inputs/instances-sort.mdx) [`InvitesSort`](/api/graphql/v1/types/inputs/invites-sort.mdx) [`LinksSort`](/api/graphql/v1/types/inputs/links-sort.mdx) [`ParamDimensionsSort`](/api/graphql/v1/types/inputs/param-dimensions-sort.mdx) [`ProjectsSort`](/api/graphql/v1/types/inputs/projects-sort.mdx) [`ViewerOrganizationsSort`](/api/graphql/v1/types/inputs/viewer-organizations-sort.mdx) \ No newline at end of file +[`AuditLogsSort`](/api/graphql/v1/types/inputs/audit-logs-sort.mdx) [`ComponentsSort`](/api/graphql/v1/types/inputs/components-sort.mdx) [`DeploymentsSort`](/api/graphql/v1/types/inputs/deployments-sort.mdx) [`EnvironmentsSort`](/api/graphql/v1/types/inputs/environments-sort.mdx) [`GroupsSort`](/api/graphql/v1/types/inputs/groups-sort.mdx) [`IdentitiesSort`](/api/graphql/v1/types/inputs/identities-sort.mdx) [`InstancesSort`](/api/graphql/v1/types/inputs/instances-sort.mdx) [`IntegrationsSort`](/api/graphql/v1/types/inputs/integrations-sort.mdx) [`InvitesSort`](/api/graphql/v1/types/inputs/invites-sort.mdx) [`LinksSort`](/api/graphql/v1/types/inputs/links-sort.mdx) [`OrganizationTagConstraintsSort`](/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx) [`ParamDimensionsSort`](/api/graphql/v1/types/inputs/param-dimensions-sort.mdx) [`ProjectsSort`](/api/graphql/v1/types/inputs/projects-sort.mdx) [`ViewerOrganizationsSort`](/api/graphql/v1/types/inputs/viewer-organizations-sort.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/enums/tag-constraint-scope.mdx b/docs/api/graphql/v1/types/enums/tag-constraint-scope.mdx new file mode 100644 index 0000000..3657c31 --- /dev/null +++ b/docs/api/graphql/v1/types/enums/tag-constraint-scope.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: tag-constraint-scope +title: TagConstraintScope +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +The resource level where a tag constraint applies. + + +```graphql +enum TagConstraintScope { + ORGANIZATION + PROJECT + ENVIRONMENT + COMPONENT + INSTANCE +} +``` + + + + +### Values + +#### [TagConstraintScope.ORGANIZATION](#organization) \{#organization\} +Tag is set on the organization + + +#### [TagConstraintScope.PROJECT](#project) \{#project\} +Tag is set on projects + + +#### [TagConstraintScope.ENVIRONMENT](#environment) \{#environment\} +Tag is set on environments + + +#### [TagConstraintScope.COMPONENT](#component) \{#component\} +Tag is set on components + + +#### [TagConstraintScope.INSTANCE](#instance) \{#instance\} +Tag is set on instances + + + + + + +### Member Of + +[`CreateOrganizationTagConstraintInput`](/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx) [`OrganizationTagConstraint`](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) [`OrganizationTagConstraintLeaf`](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/add-component-input.mdx b/docs/api/graphql/v1/types/inputs/add-component-input.mdx index 707abee..0b2dbad 100644 --- a/docs/api/graphql/v1/types/inputs/add-component-input.mdx +++ b/docs/api/graphql/v1/types/inputs/add-component-input.mdx @@ -51,6 +51,7 @@ input AddComponentInput { id: String! name: String! ociRepoName: OciRepoName! + tags: Map } ``` @@ -75,6 +76,10 @@ Display name for this component (e.g., 'Billing Database') Name of the OCI repository for the bundle to add (e.g., 'aws-aurora-postgres') +#### [AddComponentInput.tags](#tags)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Key-value tags for this component. Keys and values must be strings. Must conform to the organization's tag constraints for the component scope. + + diff --git a/docs/api/graphql/v1/types/inputs/audit-log-actor-type-filter.mdx b/docs/api/graphql/v1/types/inputs/audit-log-actor-type-filter.mdx new file mode 100644 index 0000000..c34c376 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/audit-log-actor-type-filter.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-log-actor-type-filter +title: AuditLogActorTypeFilter +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Filter by the type of actor that performed the action. + + +```graphql +input AuditLogActorTypeFilter { + eq: AuditLogActorType + in: [AuditLogActorType!] +} +``` + + + + +### Fields + +#### [AuditLogActorTypeFilter.eq](#eq)[AuditLogActorType](/api/graphql/v1/types/enums/audit-log-actor-type.mdx) \{#eq\} +Exact match + + +#### [AuditLogActorTypeFilter.in](#in)[[AuditLogActorType!]](/api/graphql/v1/types/enums/audit-log-actor-type.mdx) \{#in\} +Match any of these actor types + + + + + + +### Member Of + +[`AuditLogsFilter`](/api/graphql/v1/types/inputs/audit-logs-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/audit-logs-filter.mdx b/docs/api/graphql/v1/types/inputs/audit-logs-filter.mdx new file mode 100644 index 0000000..8c0baa4 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/audit-logs-filter.mdx @@ -0,0 +1,84 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-logs-filter +title: AuditLogsFilter +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Filter which audit logs to return. + + +```graphql +input AuditLogsFilter { + occurredAt: DatetimeFilter + type: StringFilter + actorType: AuditLogActorTypeFilter + actorId: IdFilter +} +``` + + + + +### Fields + +#### [AuditLogsFilter.occurredAt](#occurred-at)[DatetimeFilter](/api/graphql/v1/types/inputs/datetime-filter.mdx) \{#occurred-at\} +Filter by when the event occurred + + +#### [AuditLogsFilter.type](#type)[StringFilter](/api/graphql/v1/types/inputs/string-filter.mdx) \{#type\} +Filter by event type (e.g., 'project.created') + + +#### [AuditLogsFilter.actorType](#actor-type)[AuditLogActorTypeFilter](/api/graphql/v1/types/inputs/audit-log-actor-type-filter.mdx) \{#actor-type\} +Filter by who performed the action + + +#### [AuditLogsFilter.actorId](#actor-id)[IdFilter](/api/graphql/v1/types/inputs/id-filter.mdx) \{#actor-id\} +Filter by the actor's ID + + + + + + +### Member Of + +[`auditLogs`](/api/graphql/v1/operations/queries/audit-logs.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/audit-logs-sort.mdx b/docs/api/graphql/v1/types/inputs/audit-logs-sort.mdx new file mode 100644 index 0000000..51807ce --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/audit-logs-sort.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-logs-sort +title: AuditLogsSort +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Sorting options for the audit logs list. + + +```graphql +input AuditLogsSort { + field: AuditLogsSortField! + order: SortOrder! +} +``` + + + + +### Fields + +#### [AuditLogsSort.field](#field)[AuditLogsSortField!](/api/graphql/v1/types/enums/audit-logs-sort-field.mdx) \{#field\} +Which field to sort by + + +#### [AuditLogsSort.order](#order)[SortOrder!](/api/graphql/v1/types/enums/sort-order.mdx) \{#order\} +Sort direction + + + + + + +### Member Of + +[`auditLogs`](/api/graphql/v1/operations/queries/audit-logs.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/create-access-token-input.mdx b/docs/api/graphql/v1/types/inputs/create-access-token-input.mdx new file mode 100644 index 0000000..803909e --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/create-access-token-input.mdx @@ -0,0 +1,84 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-access-token-input +title: CreateAccessTokenInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a scoped, time-limited access token for API authentication. + + +```graphql +input CreateAccessTokenInput { + expiresInMinutes: Int + name: String! + scopes: [String!]! + serviceAccountId: String +} +``` + + + + +### Fields + +#### [CreateAccessTokenInput.expiresInMinutes](#expires-in-minutes)[Int](/api/graphql/v1/types/scalars/int.mdx) \{#expires-in-minutes\} +How many minutes until this token expires. Defaults to 60 (1 hour). Maximum ~5,256,000 (10 years). + + +#### [CreateAccessTokenInput.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +A label to identify this token (e.g., 'CI deploy key') + + +#### [CreateAccessTokenInput.scopes](#scopes)[[String!]!](/api/graphql/v1/types/scalars/string.mdx) \{#scopes\} +Permission scopes. At least one required. Currently only ["*"] (full access) is supported. + + +#### [CreateAccessTokenInput.serviceAccountId](#service-account-id)[String](/api/graphql/v1/types/scalars/string.mdx) \{#service-account-id\} +Create the token on behalf of this service account. Omit to create for the authenticated identity. + + + + + + +### Member Of + +[`createAccessToken`](/api/graphql/v1/operations/mutations/create-access-token.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/create-environment-input.mdx b/docs/api/graphql/v1/types/inputs/create-environment-input.mdx index f532789..440fddd 100644 --- a/docs/api/graphql/v1/types/inputs/create-environment-input.mdx +++ b/docs/api/graphql/v1/types/inputs/create-environment-input.mdx @@ -50,6 +50,7 @@ input CreateEnvironmentInput { description: String id: String! name: String! + tags: Map } ``` @@ -70,6 +71,10 @@ A short, memorable identifier for looking up this environment in the API and CLI A human-readable name for the environment +#### [CreateEnvironmentInput.tags](#tags)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Key-value tags for this environment. Keys and values must be strings. Must conform to the organization's tag constraints for the environment scope. + + diff --git a/docs/api/graphql/v1/types/inputs/create-group-input.mdx b/docs/api/graphql/v1/types/inputs/create-group-input.mdx new file mode 100644 index 0000000..e0ef38c --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/create-group-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-group-input +title: CreateGroupInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a new group. Groups control which projects members can access. + + +```graphql +input CreateGroupInput { + description: String + name: String! +} +``` + + + + +### Fields + +#### [CreateGroupInput.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this group is for + + +#### [CreateGroupInput.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +A human-readable name for the group + + + + + + +### Member Of + +[`createGroup`](/api/graphql/v1/operations/mutations/create-group.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/create-integration-input.mdx b/docs/api/graphql/v1/types/inputs/create-integration-input.mdx new file mode 100644 index 0000000..dfde6be --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/create-integration-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-integration-input +title: CreateIntegrationInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create and activate an integration for your organization. The config and auth payloads must conform to the integration type's configSchema and authSchema respectively. + + +```graphql +input CreateIntegrationInput { + auth: Map! + config: Map! +} +``` + + + + +### Fields + +#### [CreateIntegrationInput.auth](#auth)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#auth\} +Authentication credentials. Must conform to the integration type's authSchema. Write-only — not returned in queries. + + +#### [CreateIntegrationInput.config](#config)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#config\} +Integration-specific configuration. Must conform to the integration type's configSchema. + + + + + + +### Member Of + +[`createIntegration`](/api/graphql/v1/operations/mutations/create-integration.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx b/docs/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx new file mode 100644 index 0000000..1c88b69 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-organization-tag-constraint-input +title: CreateOrganizationTagConstraintInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Define a structural tag constraint for your organization. Tag constraints control which tags can be set on resources at each level of the hierarchy. + + +```graphql +input CreateOrganizationTagConstraintInput { + key: String! + required: Boolean + scope: TagConstraintScope! +} +``` + + + + +### Fields + +#### [CreateOrganizationTagConstraintInput.key](#key)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#key\} +The tag key name. Must start with a letter. Keys starting with MD_ are reserved. + + +#### [CreateOrganizationTagConstraintInput.required](#required)[Boolean](/api/graphql/v1/types/scalars/boolean.mdx) \{#required\} +Whether this tag must be set when creating a resource at the specified scope. + + +#### [CreateOrganizationTagConstraintInput.scope](#scope)[TagConstraintScope!](/api/graphql/v1/types/enums/tag-constraint-scope.mdx) \{#scope\} +The resource level where this tag is set. Values cascade to child resources. + + + + + + +### Member Of + +[`createOrganizationTagConstraint`](/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/create-project-input.mdx b/docs/api/graphql/v1/types/inputs/create-project-input.mdx index 49af67e..7eea4cb 100644 --- a/docs/api/graphql/v1/types/inputs/create-project-input.mdx +++ b/docs/api/graphql/v1/types/inputs/create-project-input.mdx @@ -50,6 +50,7 @@ input CreateProjectInput { description: String id: String! name: String! + tags: Map } ``` @@ -70,6 +71,10 @@ A short, memorable identifier for looking up this project in the API and CLI. Th A human-readable name for the project +#### [CreateProjectInput.tags](#tags)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Key-value tags for this project. Keys and values must be strings. Must conform to the organization's tag constraints for the project scope. + + diff --git a/docs/api/graphql/v1/types/inputs/create-service-account-input.mdx b/docs/api/graphql/v1/types/inputs/create-service-account-input.mdx new file mode 100644 index 0000000..1dcd318 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/create-service-account-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: create-service-account-input +title: CreateServiceAccountInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Create a new service account for programmatic API access. + + +```graphql +input CreateServiceAccountInput { + description: String + name: String! +} +``` + + + + +### Fields + +#### [CreateServiceAccountInput.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this service account is used for + + +#### [CreateServiceAccountInput.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +A human-readable name for the service account + + + + + + +### Member Of + +[`createServiceAccount`](/api/graphql/v1/operations/mutations/create-service-account.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/cursor.mdx b/docs/api/graphql/v1/types/inputs/cursor.mdx index 0c8a2ec..174a2ee 100644 --- a/docs/api/graphql/v1/types/inputs/cursor.mdx +++ b/docs/api/graphql/v1/types/inputs/cursor.mdx @@ -76,4 +76,4 @@ Cursor before which to return items ### Member Of -[`deployments`](/api/graphql/v1/operations/queries/deployments.mdx) [`environments`](/api/graphql/v1/operations/queries/environments.mdx) [`instances`](/api/graphql/v1/operations/queries/instances.mdx) [`paramDimensions`](/api/graphql/v1/operations/queries/param-dimensions.mdx) [`projects`](/api/graphql/v1/operations/queries/projects.mdx) \ No newline at end of file +[`auditLogs`](/api/graphql/v1/operations/queries/audit-logs.mdx) [`deployments`](/api/graphql/v1/operations/queries/deployments.mdx) [`environments`](/api/graphql/v1/operations/queries/environments.mdx) [`groups`](/api/graphql/v1/operations/queries/groups.mdx) [`instances`](/api/graphql/v1/operations/queries/instances.mdx) [`integrations`](/api/graphql/v1/operations/queries/integrations.mdx) [`paramDimensions`](/api/graphql/v1/operations/queries/param-dimensions.mdx) [`projects`](/api/graphql/v1/operations/queries/projects.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/datetime-filter.mdx b/docs/api/graphql/v1/types/inputs/datetime-filter.mdx new file mode 100644 index 0000000..9fef1c1 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/datetime-filter.mdx @@ -0,0 +1,90 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: datetime-filter +title: DatetimeFilter +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Filter for datetime fields. All provided operators are combined with AND. +Useful for date range queries. + + +```graphql +input DatetimeFilter { + eq: DateTime + gt: DateTime + gte: DateTime + lt: DateTime + lte: DateTime +} +``` + + + + +### Fields + +#### [DatetimeFilter.eq](#eq)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#eq\} +Exact match + + +#### [DatetimeFilter.gt](#gt)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#gt\} +After this date/time + + +#### [DatetimeFilter.gte](#gte)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#gte\} +On or after this date/time + + +#### [DatetimeFilter.lt](#lt)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#lt\} +Before this date/time + + +#### [DatetimeFilter.lte](#lte)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#lte\} +On or before this date/time + + + + + + +### Member Of + +[`AuditLogsFilter`](/api/graphql/v1/types/inputs/audit-logs-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/groups-sort.mdx b/docs/api/graphql/v1/types/inputs/groups-sort.mdx new file mode 100644 index 0000000..53b3f00 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/groups-sort.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: groups-sort +title: GroupsSort +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Sorting options for the groups list. + + +```graphql +input GroupsSort { + field: GroupsSortField! + order: SortOrder! +} +``` + + + + +### Fields + +#### [GroupsSort.field](#field)[GroupsSortField!](/api/graphql/v1/types/enums/groups-sort-field.mdx) \{#field\} +Which field to sort by + + +#### [GroupsSort.order](#order)[SortOrder!](/api/graphql/v1/types/enums/sort-order.mdx) \{#order\} +Sort direction + + + + + + +### Member Of + +[`groups`](/api/graphql/v1/operations/queries/groups.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/id-filter.mdx b/docs/api/graphql/v1/types/inputs/id-filter.mdx index 4602f7c..e3f4d71 100644 --- a/docs/api/graphql/v1/types/inputs/id-filter.mdx +++ b/docs/api/graphql/v1/types/inputs/id-filter.mdx @@ -71,4 +71,4 @@ Match any of these values ### Member Of -[`ComponentsFilter`](/api/graphql/v1/types/inputs/components-filter.mdx) [`DeploymentsFilter`](/api/graphql/v1/types/inputs/deployments-filter.mdx) [`EnvironmentsFilter`](/api/graphql/v1/types/inputs/environments-filter.mdx) [`InstancesFilter`](/api/graphql/v1/types/inputs/instances-filter.mdx) [`LinksFilter`](/api/graphql/v1/types/inputs/links-filter.mdx) [`ParamDimensionsFilter`](/api/graphql/v1/types/inputs/param-dimensions-filter.mdx) \ No newline at end of file +[`AuditLogsFilter`](/api/graphql/v1/types/inputs/audit-logs-filter.mdx) [`ComponentsFilter`](/api/graphql/v1/types/inputs/components-filter.mdx) [`DeploymentsFilter`](/api/graphql/v1/types/inputs/deployments-filter.mdx) [`EnvironmentsFilter`](/api/graphql/v1/types/inputs/environments-filter.mdx) [`InstancesFilter`](/api/graphql/v1/types/inputs/instances-filter.mdx) [`LinksFilter`](/api/graphql/v1/types/inputs/links-filter.mdx) [`ParamDimensionsFilter`](/api/graphql/v1/types/inputs/param-dimensions-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/identities-sort.mdx b/docs/api/graphql/v1/types/inputs/identities-sort.mdx index 66445ec..816baf4 100644 --- a/docs/api/graphql/v1/types/inputs/identities-sort.mdx +++ b/docs/api/graphql/v1/types/inputs/identities-sort.mdx @@ -42,7 +42,7 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => -Sorting options for identities list. +Sorting options for the identities list. ```graphql diff --git a/docs/api/graphql/v1/types/inputs/integration-status-filter.mdx b/docs/api/graphql/v1/types/inputs/integration-status-filter.mdx new file mode 100644 index 0000000..3677bee --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/integration-status-filter.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-status-filter +title: IntegrationStatusFilter +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Filter for integration status. + + +```graphql +input IntegrationStatusFilter { + eq: IntegrationStatus + in: [IntegrationStatus!] +} +``` + + + + +### Fields + +#### [IntegrationStatusFilter.eq](#eq)[IntegrationStatus](/api/graphql/v1/types/enums/integration-status.mdx) \{#eq\} +Exact match + + +#### [IntegrationStatusFilter.in](#in)[[IntegrationStatus!]](/api/graphql/v1/types/enums/integration-status.mdx) \{#in\} +Match any of these statuses + + + + + + +### Member Of + +[`IntegrationsFilter`](/api/graphql/v1/types/inputs/integrations-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/integrations-filter.mdx b/docs/api/graphql/v1/types/inputs/integrations-filter.mdx new file mode 100644 index 0000000..b0f9db3 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/integrations-filter.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integrations-filter +title: IntegrationsFilter +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Filter options for the integrations list. + + +```graphql +input IntegrationsFilter { + id: StringFilter + status: IntegrationStatusFilter +} +``` + + + + +### Fields + +#### [IntegrationsFilter.id](#id)[StringFilter](/api/graphql/v1/types/inputs/string-filter.mdx) \{#id\} +Filter by integration type ID + + +#### [IntegrationsFilter.status](#status)[IntegrationStatusFilter](/api/graphql/v1/types/inputs/integration-status-filter.mdx) \{#status\} +Filter by status + + + + + + +### Member Of + +[`integrations`](/api/graphql/v1/operations/queries/integrations.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/integrations-sort.mdx b/docs/api/graphql/v1/types/inputs/integrations-sort.mdx new file mode 100644 index 0000000..1d84ea4 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/integrations-sort.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integrations-sort +title: IntegrationsSort +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Sorting options for the integrations list. + + +```graphql +input IntegrationsSort { + field: IntegrationsSortField! + order: SortOrder! +} +``` + + + + +### Fields + +#### [IntegrationsSort.field](#field)[IntegrationsSortField!](/api/graphql/v1/types/enums/integrations-sort-field.mdx) \{#field\} +Which field to sort by + + +#### [IntegrationsSort.order](#order)[SortOrder!](/api/graphql/v1/types/enums/sort-order.mdx) \{#order\} +Sort direction + + + + + + +### Member Of + +[`integrations`](/api/graphql/v1/operations/queries/integrations.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/invites-sort.mdx b/docs/api/graphql/v1/types/inputs/invites-sort.mdx index 6efb08b..125026f 100644 --- a/docs/api/graphql/v1/types/inputs/invites-sort.mdx +++ b/docs/api/graphql/v1/types/inputs/invites-sort.mdx @@ -42,7 +42,7 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => -Sorting options for invites list. +Sorting options for the invites list. ```graphql diff --git a/docs/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx b/docs/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx new file mode 100644 index 0000000..0fac8be --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx @@ -0,0 +1,65 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraints-sort +title: OrganizationTagConstraintsSort +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Sorting options for the tag constraints list. + + +```graphql +input OrganizationTagConstraintsSort { + field: OrganizationTagConstraintsSortField! + order: SortOrder! +} +``` + + + + +### Fields + +#### [OrganizationTagConstraintsSort.field](#field)[OrganizationTagConstraintsSortField!](/api/graphql/v1/types/enums/organization-tag-constraints-sort-field.mdx) \{#field\} +Which field to sort by + + +#### [OrganizationTagConstraintsSort.order](#order)[SortOrder!](/api/graphql/v1/types/enums/sort-order.mdx) \{#order\} +Sort direction \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx b/docs/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx new file mode 100644 index 0000000..c29d3c6 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: remove-remote-reference-input +title: RemoveRemoteReferenceInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Remove a remote reference from an instance. The reference can only be removed if no provisioned instances are connected through it. + + +```graphql +input RemoveRemoteReferenceInput { + field: String! + instanceId: ID! +} +``` + + + + +### Fields + +#### [RemoveRemoteReferenceInput.field](#field)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#field\} +The resource field to remove the reference from + + +#### [RemoveRemoteReferenceInput.instanceId](#instance-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#instance-id\} +The instance the reference belongs to + + + + + + +### Member Of + +[`removeRemoteReference`](/api/graphql/v1/operations/mutations/remove-remote-reference.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/set-component-position-input.mdx b/docs/api/graphql/v1/types/inputs/set-component-position-input.mdx new file mode 100644 index 0000000..0a41299 --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/set-component-position-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: set-component-position-input +title: SetComponentPositionInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Set the position of a component on the canvas. + + +```graphql +input SetComponentPositionInput { + x: Int! + y: Int! +} +``` + + + + +### Fields + +#### [SetComponentPositionInput.x](#x)[Int!](/api/graphql/v1/types/scalars/int.mdx) \{#x\} +Horizontal position in pixels + + +#### [SetComponentPositionInput.y](#y)[Int!](/api/graphql/v1/types/scalars/int.mdx) \{#y\} +Vertical position in pixels + + + + + + +### Member Of + +[`setComponentPosition`](/api/graphql/v1/operations/mutations/set-component-position.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/set-remote-reference-input.mdx b/docs/api/graphql/v1/types/inputs/set-remote-reference-input.mdx new file mode 100644 index 0000000..e49d7fd --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/set-remote-reference-input.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: set-remote-reference-input +title: SetRemoteReferenceInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Link an instance's resource field to a resource from another project or an imported resource. The instance must not be in a provisioned or failed state. + + +```graphql +input SetRemoteReferenceInput { + field: String! + instanceId: ID! + resourceId: ID! +} +``` + + + + +### Fields + +#### [SetRemoteReferenceInput.field](#field)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#field\} +The resource field to assign the reference to + + +#### [SetRemoteReferenceInput.instanceId](#instance-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#instance-id\} +The instance to set the remote reference on + + +#### [SetRemoteReferenceInput.resourceId](#resource-id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#resource-id\} +The resource to reference — either a UUID for imported resources or 'instance.field' for provisioned resources + + + + + + +### Member Of + +[`setRemoteReference`](/api/graphql/v1/operations/mutations/set-remote-reference.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/string-filter.mdx b/docs/api/graphql/v1/types/inputs/string-filter.mdx index c05adf7..51576a9 100644 --- a/docs/api/graphql/v1/types/inputs/string-filter.mdx +++ b/docs/api/graphql/v1/types/inputs/string-filter.mdx @@ -71,4 +71,4 @@ Match any of these values ### Member Of -[`EnvironmentsFilter`](/api/graphql/v1/types/inputs/environments-filter.mdx) \ No newline at end of file +[`AuditLogsFilter`](/api/graphql/v1/types/inputs/audit-logs-filter.mdx) [`EnvironmentsFilter`](/api/graphql/v1/types/inputs/environments-filter.mdx) [`IntegrationsFilter`](/api/graphql/v1/types/inputs/integrations-filter.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/update-environment-input.mdx b/docs/api/graphql/v1/types/inputs/update-environment-input.mdx index 448604f..edaa6f6 100644 --- a/docs/api/graphql/v1/types/inputs/update-environment-input.mdx +++ b/docs/api/graphql/v1/types/inputs/update-environment-input.mdx @@ -49,6 +49,7 @@ Update an existing environment's name and description. The ID cannot be changed input UpdateEnvironmentInput { description: String name: String + tags: Map } ``` @@ -65,6 +66,10 @@ An optional description of the environment's purpose A human-readable name for the environment +#### [UpdateEnvironmentInput.tags](#tags)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Key-value tags for this environment. Keys and values must be strings. Must conform to the organization's tag constraints for the environment scope. + + diff --git a/docs/api/graphql/v1/types/inputs/update-group-input.mdx b/docs/api/graphql/v1/types/inputs/update-group-input.mdx new file mode 100644 index 0000000..d40163e --- /dev/null +++ b/docs/api/graphql/v1/types/inputs/update-group-input.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: update-group-input +title: UpdateGroupInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Update a group's name or description. + + +```graphql +input UpdateGroupInput { + description: String + name: String! +} +``` + + + + +### Fields + +#### [UpdateGroupInput.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this group is for + + +#### [UpdateGroupInput.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +A human-readable name for the group + + + + + + +### Member Of + +[`updateGroup`](/api/graphql/v1/operations/mutations/update-group.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/inputs/update-project-input.mdx b/docs/api/graphql/v1/types/inputs/update-project-input.mdx index d98f210..93ae5a6 100644 --- a/docs/api/graphql/v1/types/inputs/update-project-input.mdx +++ b/docs/api/graphql/v1/types/inputs/update-project-input.mdx @@ -49,6 +49,7 @@ Update an existing project's name and description. The ID cannot be changed afte input UpdateProjectInput { description: String name: String + tags: Map } ``` @@ -65,6 +66,10 @@ An optional description of the project's purpose or contents A human-readable name for the project +#### [UpdateProjectInput.tags](#tags)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Key-value tags for this project. Keys and values must be strings. Must conform to the organization's tag constraints for the project scope. + + diff --git a/docs/api/graphql/v1/types/objects/access-token-payload.mdx b/docs/api/graphql/v1/types/objects/access-token-payload.mdx new file mode 100644 index 0000000..27cef5e --- /dev/null +++ b/docs/api/graphql/v1/types/objects/access-token-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: access-token-payload +title: AccessTokenPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type AccessTokenPayload { + successful: Boolean! + messages: [ValidationMessage] + result: AccessToken +} +``` + + + + +### Fields + +#### [AccessTokenPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [AccessTokenPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [AccessTokenPayload.result](#result)[AccessToken](/api/graphql/v1/types/objects/access-token.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`revokeAccessToken`](/api/graphql/v1/operations/mutations/revoke-access-token.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/access-token-with-value-payload.mdx b/docs/api/graphql/v1/types/objects/access-token-with-value-payload.mdx new file mode 100644 index 0000000..60b6cb1 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/access-token-with-value-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: access-token-with-value-payload +title: AccessTokenWithValuePayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type AccessTokenWithValuePayload { + successful: Boolean! + messages: [ValidationMessage] + result: AccessTokenWithValue +} +``` + + + + +### Fields + +#### [AccessTokenWithValuePayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [AccessTokenWithValuePayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [AccessTokenWithValuePayload.result](#result)[AccessTokenWithValue](/api/graphql/v1/types/objects/access-token-with-value.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createAccessToken`](/api/graphql/v1/operations/mutations/create-access-token.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/access-token-with-value.mdx b/docs/api/graphql/v1/types/objects/access-token-with-value.mdx new file mode 100644 index 0000000..d8afb02 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/access-token-with-value.mdx @@ -0,0 +1,99 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: access-token-with-value +title: AccessTokenWithValue +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An access token with the raw token value. Only returned on creation. + + +```graphql +type AccessTokenWithValue { + id: ID! + name: String! + token: String! + prefix: String! + scopes: [String!]! + expiresAt: DateTime! + createdAt: DateTime! +} +``` + + + + +### Fields + +#### [AccessTokenWithValue.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Access token identifier + + +#### [AccessTokenWithValue.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Label for this token + + +#### [AccessTokenWithValue.token](#token)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#token\} +The full token value. Store securely — this is the only time it is shown. + + +#### [AccessTokenWithValue.prefix](#prefix)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#prefix\} +Short prefix for identifying this token in lists (e.g., md_a1b2c3d4) + + +#### [AccessTokenWithValue.scopes](#scopes)[[String!]!](/api/graphql/v1/types/scalars/string.mdx) \{#scopes\} +Permission scopes granted to this token + + +#### [AccessTokenWithValue.expiresAt](#expires-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#expires-at\} +When this token expires (UTC) + + +#### [AccessTokenWithValue.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this token was created (UTC) + + + + + + +### Member Of + +[`AccessTokenWithValuePayload`](/api/graphql/v1/types/objects/access-token-with-value-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/access-token.mdx b/docs/api/graphql/v1/types/objects/access-token.mdx new file mode 100644 index 0000000..b8e9b65 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/access-token.mdx @@ -0,0 +1,104 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: access-token +title: AccessToken +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An access token's metadata. Does not include the raw token value. + + +```graphql +type AccessToken { + id: ID! + name: String! + prefix: String! + scopes: [String!]! + expiresAt: DateTime! + revokedAt: DateTime + lastUsedAt: DateTime + createdAt: DateTime! +} +``` + + + + +### Fields + +#### [AccessToken.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Access token identifier + + +#### [AccessToken.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Label for this token + + +#### [AccessToken.prefix](#prefix)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#prefix\} +Short prefix for identifying this token (e.g., md_a1b2c3d4) + + +#### [AccessToken.scopes](#scopes)[[String!]!](/api/graphql/v1/types/scalars/string.mdx) \{#scopes\} +Permission scopes granted to this token + + +#### [AccessToken.expiresAt](#expires-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#expires-at\} +When this token expires (UTC) + + +#### [AccessToken.revokedAt](#revoked-at)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#revoked-at\} +When this token was revoked, if applicable (UTC) + + +#### [AccessToken.lastUsedAt](#last-used-at)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#last-used-at\} +When this token was last used for authentication (UTC) + + +#### [AccessToken.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this token was created (UTC) + + + + + + +### Member Of + +[`AccessTokenPayload`](/api/graphql/v1/types/objects/access-token-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/audit-log-leaf.mdx b/docs/api/graphql/v1/types/objects/audit-log-leaf.mdx new file mode 100644 index 0000000..5b43487 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/audit-log-leaf.mdx @@ -0,0 +1,99 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-log-leaf +title: AuditLogLeaf +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An audit log event returned in list results. + + +```graphql +type AuditLogLeaf { + id: ID! + occurredAt: DateTime! + type: String! + source: String! + subject: String + data: Map + actor: V1AuditLogActor! +} +``` + + + + +### Fields + +#### [AuditLogLeaf.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Unique event identifier + + +#### [AuditLogLeaf.occurredAt](#occurred-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#occurred-at\} +When the event occurred (UTC) + + +#### [AuditLogLeaf.type](#type)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#type\} +Event type (e.g., 'project.created') + + +#### [AuditLogLeaf.source](#source)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#source\} +Where the event originated + + +#### [AuditLogLeaf.subject](#subject)[String](/api/graphql/v1/types/scalars/string.mdx) \{#subject\} +Resource the event applies to (MRI format) + + +#### [AuditLogLeaf.data](#data)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#data\} +Event payload with context and resource details + + +#### [AuditLogLeaf.actor](#actor)[V1AuditLogActor!](/api/graphql/v1/types/objects/v1-audit-log-actor.mdx) \{#actor\} +Who performed this action + + + + + + +### Member Of + +[`AuditLogsPage`](/api/graphql/v1/types/objects/audit-logs-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/audit-log.mdx b/docs/api/graphql/v1/types/objects/audit-log.mdx new file mode 100644 index 0000000..9c46e2c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/audit-log.mdx @@ -0,0 +1,99 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-log +title: AuditLog +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An audit log event with full details. + + +```graphql +type AuditLog { + id: ID! + occurredAt: DateTime! + type: String! + source: String! + subject: String + data: Map + actor: V1AuditLogActor! +} +``` + + + + +### Fields + +#### [AuditLog.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Unique event identifier + + +#### [AuditLog.occurredAt](#occurred-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#occurred-at\} +When the event occurred (UTC) + + +#### [AuditLog.type](#type)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#type\} +Event type (e.g., 'project.created') + + +#### [AuditLog.source](#source)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#source\} +Where the event originated + + +#### [AuditLog.subject](#subject)[String](/api/graphql/v1/types/scalars/string.mdx) \{#subject\} +Resource the event applies to (MRI format) + + +#### [AuditLog.data](#data)[Map](/api/graphql/v1/types/scalars/map.mdx) \{#data\} +Event payload with context and resource details + + +#### [AuditLog.actor](#actor)[V1AuditLogActor!](/api/graphql/v1/types/objects/v1-audit-log-actor.mdx) \{#actor\} +Who performed this action + + + + + + +### Returned By + +[`auditLog`](/api/graphql/v1/operations/queries/audit-log.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/audit-logs-page.mdx b/docs/api/graphql/v1/types/objects/audit-logs-page.mdx new file mode 100644 index 0000000..10984b0 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/audit-logs-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: audit-logs-page +title: AuditLogsPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type AuditLogsPage { + cursor: PaginationCursor! + items: [AuditLogLeaf] +} +``` + + + + +### Fields + +#### [AuditLogsPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [AuditLogsPage.items](#items)[[AuditLogLeaf]](/api/graphql/v1/types/objects/audit-log-leaf.mdx) \{#items\} +A list of type audit_log_leaf. + + + + + + +### Returned By + +[`auditLogs`](/api/graphql/v1/operations/queries/audit-logs.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/component-leaf.mdx b/docs/api/graphql/v1/types/objects/component-leaf.mdx index 421df2c..cadcf3e 100644 --- a/docs/api/graphql/v1/types/objects/component-leaf.mdx +++ b/docs/api/graphql/v1/types/objects/component-leaf.mdx @@ -50,6 +50,8 @@ type ComponentLeaf { id: ID! name: String! description: String + tags: Map! + position: ComponentPosition createdAt: DateTime! updatedAt: DateTime! ociRepo: OciRepoLeaf @@ -71,7 +73,15 @@ Display name #### [ComponentLeaf.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} -Component description +What this component is for + + +#### [ComponentLeaf.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this component + + +#### [ComponentLeaf.position](#position)[ComponentPosition](/api/graphql/v1/types/objects/component-position.mdx) \{#position\} +Position on the canvas #### [ComponentLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} diff --git a/docs/api/graphql/v1/types/objects/component-payload.mdx b/docs/api/graphql/v1/types/objects/component-payload.mdx index c3a9fca..a505c4a 100644 --- a/docs/api/graphql/v1/types/objects/component-payload.mdx +++ b/docs/api/graphql/v1/types/objects/component-payload.mdx @@ -76,4 +76,4 @@ The object created/updated/deleted by the mutation. May be null if mutation fail ### Returned By -[`addComponent`](/api/graphql/v1/operations/mutations/add-component.mdx) [`removeComponent`](/api/graphql/v1/operations/mutations/remove-component.mdx) \ No newline at end of file +[`addComponent`](/api/graphql/v1/operations/mutations/add-component.mdx) [`removeComponent`](/api/graphql/v1/operations/mutations/remove-component.mdx) [`setComponentPosition`](/api/graphql/v1/operations/mutations/set-component-position.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/component-position.mdx b/docs/api/graphql/v1/types/objects/component-position.mdx new file mode 100644 index 0000000..c1e6c5d --- /dev/null +++ b/docs/api/graphql/v1/types/objects/component-position.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: component-position +title: ComponentPosition +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A component's position on the canvas. + + +```graphql +type ComponentPosition { + x: Int! + y: Int! +} +``` + + + + +### Fields + +#### [ComponentPosition.x](#x)[Int!](/api/graphql/v1/types/scalars/int.mdx) \{#x\} +Horizontal position in pixels + + +#### [ComponentPosition.y](#y)[Int!](/api/graphql/v1/types/scalars/int.mdx) \{#y\} +Vertical position in pixels + + + + + + +### Member Of + +[`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/component.mdx b/docs/api/graphql/v1/types/objects/component.mdx index a059385..fcf9725 100644 --- a/docs/api/graphql/v1/types/objects/component.mdx +++ b/docs/api/graphql/v1/types/objects/component.mdx @@ -50,6 +50,8 @@ type Component { id: ID! name: String! description: String + tags: Map! + position: ComponentPosition createdAt: DateTime! updatedAt: DateTime! ociRepo: OciRepo @@ -71,7 +73,15 @@ Display name #### [Component.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} -Component description +What this component is for + + +#### [Component.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this component + + +#### [Component.position](#position)[ComponentPosition](/api/graphql/v1/types/objects/component-position.mdx) \{#position\} +Position on the canvas #### [Component.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} diff --git a/docs/api/graphql/v1/types/objects/cost-summary.mdx b/docs/api/graphql/v1/types/objects/cost-summary.mdx index 18593e7..719b109 100644 --- a/docs/api/graphql/v1/types/objects/cost-summary.mdx +++ b/docs/api/graphql/v1/types/objects/cost-summary.mdx @@ -81,4 +81,4 @@ Average daily cost ### Member Of -[`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) \ No newline at end of file +[`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx b/docs/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx new file mode 100644 index 0000000..97ffc9f --- /dev/null +++ b/docs/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: deleted-organization-member-payload +title: DeletedOrganizationMemberPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type DeletedOrganizationMemberPayload { + successful: Boolean! + messages: [ValidationMessage] + result: DeletedOrganizationMember +} +``` + + + + +### Fields + +#### [DeletedOrganizationMemberPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [DeletedOrganizationMemberPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [DeletedOrganizationMemberPayload.result](#result)[DeletedOrganizationMember](/api/graphql/v1/types/objects/deleted-organization-member.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`deleteOrganizationMember`](/api/graphql/v1/operations/mutations/delete-organization-member.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/deleted-organization-member.mdx b/docs/api/graphql/v1/types/objects/deleted-organization-member.mdx new file mode 100644 index 0000000..177a33c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/deleted-organization-member.mdx @@ -0,0 +1,69 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: deleted-organization-member +title: DeletedOrganizationMember +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A deleted organization member. + + +```graphql +type DeletedOrganizationMember { + email: String! +} +``` + + + + +### Fields + +#### [DeletedOrganizationMember.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the removed member + + + + + + +### Member Of + +[`DeletedOrganizationMemberPayload`](/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/environment-leaf.mdx b/docs/api/graphql/v1/types/objects/environment-leaf.mdx index d0eb390..d962355 100644 --- a/docs/api/graphql/v1/types/objects/environment-leaf.mdx +++ b/docs/api/graphql/v1/types/objects/environment-leaf.mdx @@ -50,6 +50,7 @@ type EnvironmentLeaf { id: ID! name: String! description: String + tags: Map! createdAt: DateTime! updatedAt: DateTime! project: ProjectLeaf @@ -74,6 +75,10 @@ Display name What this environment is for +#### [EnvironmentLeaf.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this environment + + #### [EnvironmentLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} When this environment was created (UTC) diff --git a/docs/api/graphql/v1/types/objects/environment.mdx b/docs/api/graphql/v1/types/objects/environment.mdx index 958bb98..3ffdb26 100644 --- a/docs/api/graphql/v1/types/objects/environment.mdx +++ b/docs/api/graphql/v1/types/objects/environment.mdx @@ -50,6 +50,7 @@ type Environment { id: ID! name: String! description: String + tags: Map! createdAt: DateTime! updatedAt: DateTime! project: Project @@ -80,6 +81,10 @@ Display name What this environment is for +#### [Environment.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this environment + + #### [Environment.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} When this environment was created (UTC) diff --git a/docs/api/graphql/v1/types/objects/group-invitation-payload.mdx b/docs/api/graphql/v1/types/objects/group-invitation-payload.mdx new file mode 100644 index 0000000..86d12eb --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-invitation-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-invitation-payload +title: GroupInvitationPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type GroupInvitationPayload { + successful: Boolean! + messages: [ValidationMessage] + result: GroupInvitation +} +``` + + + + +### Fields + +#### [GroupInvitationPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [GroupInvitationPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [GroupInvitationPayload.result](#result)[GroupInvitation](/api/graphql/v1/types/objects/group-invitation.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createGroupInvitation`](/api/graphql/v1/operations/mutations/create-group-invitation.mdx) [`deleteGroupInvitation`](/api/graphql/v1/operations/mutations/delete-group-invitation.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group-invitation.mdx b/docs/api/graphql/v1/types/objects/group-invitation.mdx new file mode 100644 index 0000000..cabaf48 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-invitation.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-invitation +title: GroupInvitation +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An invitation to join a group. + + +```graphql +type GroupInvitation { + id: ID! + email: String! + createdAt: DateTime! +} +``` + + + + +### Fields + +#### [GroupInvitation.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Invitation identifier + + +#### [GroupInvitation.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the invited user + + +#### [GroupInvitation.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When the invitation was sent (UTC) + + + + + + +### Member Of + +[`GroupInvitationPayload`](/api/graphql/v1/types/objects/group-invitation-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group-leaf.mdx b/docs/api/graphql/v1/types/objects/group-leaf.mdx new file mode 100644 index 0000000..9f130ac --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-leaf.mdx @@ -0,0 +1,94 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-leaf +title: GroupLeaf +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A group returned in list results. + + +```graphql +type GroupLeaf { + id: ID! + name: String! + description: String + role: GroupRole! + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [GroupLeaf.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Group identifier + + +#### [GroupLeaf.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Group name + + +#### [GroupLeaf.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this group is for + + +#### [GroupLeaf.role](#role)[GroupRole!](/api/graphql/v1/types/enums/group-role.mdx) \{#role\} +Access level within the organization + + +#### [GroupLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this group was created (UTC) + + +#### [GroupLeaf.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this group was last modified (UTC) + + + + + + +### Member Of + +[`GroupsPage`](/api/graphql/v1/types/objects/groups-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group-member-payload.mdx b/docs/api/graphql/v1/types/objects/group-member-payload.mdx new file mode 100644 index 0000000..11de73a --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-member-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-member-payload +title: GroupMemberPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type GroupMemberPayload { + successful: Boolean! + messages: [ValidationMessage] + result: GroupMember +} +``` + + + + +### Fields + +#### [GroupMemberPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [GroupMemberPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [GroupMemberPayload.result](#result)[GroupMember](/api/graphql/v1/types/objects/group-member.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`deleteGroupMember`](/api/graphql/v1/operations/mutations/delete-group-member.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group-member.mdx b/docs/api/graphql/v1/types/objects/group-member.mdx new file mode 100644 index 0000000..178ff59 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-member.mdx @@ -0,0 +1,69 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-member +title: GroupMember +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A group member. + + +```graphql +type GroupMember { + email: String! +} +``` + + + + +### Fields + +#### [GroupMember.email](#email)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#email\} +Email address of the member + + + + + + +### Member Of + +[`GroupMemberPayload`](/api/graphql/v1/types/objects/group-member-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group-payload.mdx b/docs/api/graphql/v1/types/objects/group-payload.mdx new file mode 100644 index 0000000..0b8b354 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group-payload +title: GroupPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type GroupPayload { + successful: Boolean! + messages: [ValidationMessage] + result: Group +} +``` + + + + +### Fields + +#### [GroupPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [GroupPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [GroupPayload.result](#result)[Group](/api/graphql/v1/types/objects/group.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createGroup`](/api/graphql/v1/operations/mutations/create-group.mdx) [`deleteGroup`](/api/graphql/v1/operations/mutations/delete-group.mdx) [`updateGroup`](/api/graphql/v1/operations/mutations/update-group.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/group.mdx b/docs/api/graphql/v1/types/objects/group.mdx new file mode 100644 index 0000000..67f6d9e --- /dev/null +++ b/docs/api/graphql/v1/types/objects/group.mdx @@ -0,0 +1,98 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: group +title: Group +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A group with its full details. + + +```graphql +type Group { + id: ID! + name: String! + description: String + role: GroupRole! + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [Group.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Group identifier + + +#### [Group.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Group name + + +#### [Group.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this group is for + + +#### [Group.role](#role)[GroupRole!](/api/graphql/v1/types/enums/group-role.mdx) \{#role\} +Access level within the organization + + +#### [Group.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this group was created (UTC) + + +#### [Group.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this group was last modified (UTC) + + + + + + +### Returned By + +[`group`](/api/graphql/v1/operations/queries/group.mdx) + +### Member Of + +[`GroupPayload`](/api/graphql/v1/types/objects/group-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/groups-page.mdx b/docs/api/graphql/v1/types/objects/groups-page.mdx new file mode 100644 index 0000000..e079444 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/groups-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: groups-page +title: GroupsPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type GroupsPage { + cursor: PaginationCursor! + items: [GroupLeaf] +} +``` + + + + +### Fields + +#### [GroupsPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [GroupsPage.items](#items)[[GroupLeaf]](/api/graphql/v1/types/objects/group-leaf.mdx) \{#items\} +A list of type group_leaf. + + + + + + +### Returned By + +[`groups`](/api/graphql/v1/operations/queries/groups.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/instance-dependencies-page.mdx b/docs/api/graphql/v1/types/objects/instance-dependencies-page.mdx new file mode 100644 index 0000000..d04d676 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/instance-dependencies-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: instance-dependencies-page +title: InstanceDependenciesPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type InstanceDependenciesPage { + cursor: PaginationCursor! + items: [InstanceDependency] +} +``` + + + + +### Fields + +#### [InstanceDependenciesPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [InstanceDependenciesPage.items](#items)[[InstanceDependency]](/api/graphql/v1/types/objects/instance-dependency.mdx) \{#items\} +A list of type instance_dependency. + + + + + + +### Member Of + +[`Instance`](/api/graphql/v1/types/objects/instance.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/instance-dependency.mdx b/docs/api/graphql/v1/types/objects/instance-dependency.mdx new file mode 100644 index 0000000..f680eed --- /dev/null +++ b/docs/api/graphql/v1/types/objects/instance-dependency.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: instance-dependency +title: InstanceDependency +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A dependency keyed by the input handle that consumes it. + + +```graphql +type InstanceDependency { + field: String! + resource: Resource! +} +``` + + + + +### Fields + +#### [InstanceDependency.field](#field)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#field\} +The input handle that consumes this resource + + +#### [InstanceDependency.resource](#resource)[Resource!](/api/graphql/v1/types/objects/resource.mdx) \{#resource\} +The resource artifact + + + + + + +### Member Of + +[`InstanceDependenciesPage`](/api/graphql/v1/types/objects/instance-dependencies-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/instance-leaf.mdx b/docs/api/graphql/v1/types/objects/instance-leaf.mdx index 4e581b7..f0bdd37 100644 --- a/docs/api/graphql/v1/types/objects/instance-leaf.mdx +++ b/docs/api/graphql/v1/types/objects/instance-leaf.mdx @@ -50,10 +50,15 @@ type InstanceLeaf { id: ID! name: String! status: InstanceStatus! + tags: Map! version: String! releaseStrategy: ReleaseStrategy! createdAt: DateTime! updatedAt: DateTime! + resolvedVersion: String! + deployedVersion: String + availableUpgrade: String + cost: CostSummary! environment: EnvironmentLeaf bundle: BundleLeaf } @@ -69,13 +74,17 @@ type InstanceLeaf { #### [InstanceLeaf.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} -Instance display name +Display name #### [InstanceLeaf.status](#status)[InstanceStatus!](/api/graphql/v1/types/enums/instance-status.mdx) \{#status\} Current state of the instance +#### [InstanceLeaf.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this instance + + #### [InstanceLeaf.version](#version)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#version\} Version constraint (e.g., '~1.0' or '1.2.3') @@ -92,6 +101,22 @@ When this instance was created (UTC) When this instance was last modified (UTC) +#### [InstanceLeaf.resolvedVersion](#resolved-version)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#resolved-version\} +The actual version resolved from the version constraint, used for the next deployment. + + +#### [InstanceLeaf.deployedVersion](#deployed-version)[String](/api/graphql/v1/types/scalars/string.mdx) \{#deployed-version\} +The version last deployed to infrastructure. May differ from resolvedVersion if not yet deployed. + + +#### [InstanceLeaf.availableUpgrade](#available-upgrade)[String](/api/graphql/v1/types/scalars/string.mdx) \{#available-upgrade\} +Newest version available for upgrade, or null if already on the latest matching version. + + +#### [InstanceLeaf.cost](#cost)[CostSummary!](/api/graphql/v1/types/objects/cost-summary.mdx) \{#cost\} +Cloud provider costs for this instance. + + #### [InstanceLeaf.environment](#environment)[EnvironmentLeaf](/api/graphql/v1/types/objects/environment-leaf.mdx) \{#environment\} The environment this instance is deployed in. diff --git a/docs/api/graphql/v1/types/objects/instance-resource.mdx b/docs/api/graphql/v1/types/objects/instance-resource.mdx new file mode 100644 index 0000000..3dbb2bb --- /dev/null +++ b/docs/api/graphql/v1/types/objects/instance-resource.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: instance-resource +title: InstanceResource +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A resource keyed by the output handle that produced it. + + +```graphql +type InstanceResource { + field: String! + resource: Resource! +} +``` + + + + +### Fields + +#### [InstanceResource.field](#field)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#field\} +The output handle that produced this resource + + +#### [InstanceResource.resource](#resource)[Resource!](/api/graphql/v1/types/objects/resource.mdx) \{#resource\} +The resource artifact + + + + + + +### Member Of + +[`InstanceResourcesPage`](/api/graphql/v1/types/objects/instance-resources-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/instance-resources-page.mdx b/docs/api/graphql/v1/types/objects/instance-resources-page.mdx new file mode 100644 index 0000000..fa5cfbf --- /dev/null +++ b/docs/api/graphql/v1/types/objects/instance-resources-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: instance-resources-page +title: InstanceResourcesPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type InstanceResourcesPage { + cursor: PaginationCursor! + items: [InstanceResource] +} +``` + + + + +### Fields + +#### [InstanceResourcesPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [InstanceResourcesPage.items](#items)[[InstanceResource]](/api/graphql/v1/types/objects/instance-resource.mdx) \{#items\} +A list of type instance_resource. + + + + + + +### Member Of + +[`Instance`](/api/graphql/v1/types/objects/instance.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/instance.mdx b/docs/api/graphql/v1/types/objects/instance.mdx index d007755..d0ea448 100644 --- a/docs/api/graphql/v1/types/objects/instance.mdx +++ b/docs/api/graphql/v1/types/objects/instance.mdx @@ -50,12 +50,23 @@ type Instance { id: ID! name: String! status: InstanceStatus! + tags: Map! version: String! releaseStrategy: ReleaseStrategy! createdAt: DateTime! updatedAt: DateTime! + resolvedVersion: String! + deployedVersion: String + availableUpgrade: String + cost: CostSummary! environment: Environment bundle: Bundle + resources( + cursor: Cursor + ): InstanceResourcesPage + dependencies( + cursor: Cursor + ): InstanceDependenciesPage } ``` @@ -69,13 +80,17 @@ type Instance { #### [Instance.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} -Instance display name +Display name #### [Instance.status](#status)[InstanceStatus!](/api/graphql/v1/types/enums/instance-status.mdx) \{#status\} Current state of the instance +#### [Instance.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this instance + + #### [Instance.version](#version)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#version\} Version constraint (e.g., '~1.0' or '1.2.3') @@ -92,6 +107,22 @@ When this instance was created (UTC) When this instance was last modified (UTC) +#### [Instance.resolvedVersion](#resolved-version)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#resolved-version\} +The actual version resolved from the version constraint, used for the next deployment. + + +#### [Instance.deployedVersion](#deployed-version)[String](/api/graphql/v1/types/scalars/string.mdx) \{#deployed-version\} +The version last deployed to infrastructure. May differ from resolvedVersion if not yet deployed. + + +#### [Instance.availableUpgrade](#available-upgrade)[String](/api/graphql/v1/types/scalars/string.mdx) \{#available-upgrade\} +Newest version available for upgrade, or null if already on the latest matching version. + + +#### [Instance.cost](#cost)[CostSummary!](/api/graphql/v1/types/objects/cost-summary.mdx) \{#cost\} +Cloud provider costs for this instance. + + #### [Instance.environment](#environment)[Environment](/api/graphql/v1/types/objects/environment.mdx) \{#environment\} The environment this instance is deployed in. @@ -100,6 +131,18 @@ The environment this instance is deployed in. The bundle version currently deployed. +#### [Instance.resources](#resources)[InstanceResourcesPage](/api/graphql/v1/types/objects/instance-resources-page.mdx) \{#resources\} +Resources produced by this instance (its output artifacts). +##### [Instance.resources.cursor](#instance-resources-cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#instance-resources-cursor\} + + + +#### [Instance.dependencies](#dependencies)[InstanceDependenciesPage](/api/graphql/v1/types/objects/instance-dependencies-page.mdx) \{#dependencies\} +Dependencies consumed by this instance (artifacts from other instances wired via connections). +##### [Instance.dependencies.cursor](#instance-dependencies-cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#instance-dependencies-cursor\} + + + diff --git a/docs/api/graphql/v1/types/objects/integration-activation-payload.mdx b/docs/api/graphql/v1/types/objects/integration-activation-payload.mdx new file mode 100644 index 0000000..18c811c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-activation-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-activation-payload +title: IntegrationActivationPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type IntegrationActivationPayload { + successful: Boolean! + messages: [ValidationMessage] + result: IntegrationActivation +} +``` + + + + +### Fields + +#### [IntegrationActivationPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [IntegrationActivationPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [IntegrationActivationPayload.result](#result)[IntegrationActivation](/api/graphql/v1/types/objects/integration-activation.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createIntegration`](/api/graphql/v1/operations/mutations/create-integration.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration-activation.mdx b/docs/api/graphql/v1/types/objects/integration-activation.mdx new file mode 100644 index 0000000..783c83c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-activation.mdx @@ -0,0 +1,104 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-activation +title: IntegrationActivation +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A newly created integration with setup instructions. + + +```graphql +type IntegrationActivation { + id: ID! + integrationTypeId: String! + config: Map! + status: IntegrationStatus! + createdAt: DateTime! + updatedAt: DateTime! + nextRunAt: DateTime + instructions: String! +} +``` + + + + +### Fields + +#### [IntegrationActivation.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Integration type identifier + + +#### [IntegrationActivation.integrationTypeId](#integration-type-id)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#integration-type-id\} +The type of integration + + +#### [IntegrationActivation.config](#config)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#config\} +Integration-specific configuration + + +#### [IntegrationActivation.status](#status)[IntegrationStatus!](/api/graphql/v1/types/enums/integration-status.mdx) \{#status\} +Current status + + +#### [IntegrationActivation.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this integration was created (UTC) + + +#### [IntegrationActivation.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this integration was last modified (UTC) + + +#### [IntegrationActivation.nextRunAt](#next-run-at)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#next-run-at\} +When this integration will next execute + + +#### [IntegrationActivation.instructions](#instructions)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#instructions\} +Setup instructions for this integration. May contain sensitive credentials — store securely. + + + + + + +### Member Of + +[`IntegrationActivationPayload`](/api/graphql/v1/types/objects/integration-activation-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration-leaf.mdx b/docs/api/graphql/v1/types/objects/integration-leaf.mdx new file mode 100644 index 0000000..7e8c425 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-leaf.mdx @@ -0,0 +1,99 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-leaf +title: IntegrationLeaf +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A configured integration returned in list results. + + +```graphql +type IntegrationLeaf { + id: ID! + integrationTypeId: String! + config: Map! + status: IntegrationStatus! + createdAt: DateTime! + updatedAt: DateTime! + nextRunAt: DateTime +} +``` + + + + +### Fields + +#### [IntegrationLeaf.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Integration type identifier (unique per organization) + + +#### [IntegrationLeaf.integrationTypeId](#integration-type-id)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#integration-type-id\} +The type of integration + + +#### [IntegrationLeaf.config](#config)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#config\} +Integration-specific configuration + + +#### [IntegrationLeaf.status](#status)[IntegrationStatus!](/api/graphql/v1/types/enums/integration-status.mdx) \{#status\} +Current status + + +#### [IntegrationLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this integration was created (UTC) + + +#### [IntegrationLeaf.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this integration was last modified (UTC) + + +#### [IntegrationLeaf.nextRunAt](#next-run-at)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#next-run-at\} +When this integration will next execute + + + + + + +### Member Of + +[`IntegrationsPage`](/api/graphql/v1/types/objects/integrations-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration-payload.mdx b/docs/api/graphql/v1/types/objects/integration-payload.mdx new file mode 100644 index 0000000..afde907 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-payload +title: IntegrationPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type IntegrationPayload { + successful: Boolean! + messages: [ValidationMessage] + result: Integration +} +``` + + + + +### Fields + +#### [IntegrationPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [IntegrationPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [IntegrationPayload.result](#result)[Integration](/api/graphql/v1/types/objects/integration.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`deleteIntegration`](/api/graphql/v1/operations/mutations/delete-integration.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration-type-info.mdx b/docs/api/graphql/v1/types/objects/integration-type-info.mdx new file mode 100644 index 0000000..a903b39 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-type-info.mdx @@ -0,0 +1,94 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-type-info +title: IntegrationTypeInfo +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A supported integration type that can be configured for your organization. + + +```graphql +type IntegrationTypeInfo { + id: String! + name: String! + description: String + docs: String! + configSchema: Map! + authSchema: Map! +} +``` + + + + +### Fields + +#### [IntegrationTypeInfo.id](#id)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#id\} +Unique identifier for this integration type + + +#### [IntegrationTypeInfo.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Display name + + +#### [IntegrationTypeInfo.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this integration does + + +#### [IntegrationTypeInfo.docs](#docs)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#docs\} +URL to the documentation + + +#### [IntegrationTypeInfo.configSchema](#config-schema)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#config-schema\} +JSON Schema for the `config` field when creating this integration + + +#### [IntegrationTypeInfo.authSchema](#auth-schema)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#auth-schema\} +JSON Schema for the `auth` field when creating this integration + + + + + + +### Member Of + +[`IntegrationTypesPage`](/api/graphql/v1/types/objects/integration-types-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration-types-page.mdx b/docs/api/graphql/v1/types/objects/integration-types-page.mdx new file mode 100644 index 0000000..533f7d8 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration-types-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration-types-page +title: IntegrationTypesPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type IntegrationTypesPage { + cursor: PaginationCursor! + items: [IntegrationTypeInfo] +} +``` + + + + +### Fields + +#### [IntegrationTypesPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [IntegrationTypesPage.items](#items)[[IntegrationTypeInfo]](/api/graphql/v1/types/objects/integration-type-info.mdx) \{#items\} +A list of type integration_type_info. + + + + + + +### Returned By + +[`integrationTypes`](/api/graphql/v1/operations/queries/integration-types.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integration.mdx b/docs/api/graphql/v1/types/objects/integration.mdx new file mode 100644 index 0000000..ceaf367 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integration.mdx @@ -0,0 +1,103 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integration +title: Integration +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A configured integration with its full details. + + +```graphql +type Integration { + id: ID! + integrationTypeId: String! + config: Map! + status: IntegrationStatus! + createdAt: DateTime! + updatedAt: DateTime! + nextRunAt: DateTime +} +``` + + + + +### Fields + +#### [Integration.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Integration type identifier (unique per organization) + + +#### [Integration.integrationTypeId](#integration-type-id)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#integration-type-id\} +The type of integration + + +#### [Integration.config](#config)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#config\} +Integration-specific configuration + + +#### [Integration.status](#status)[IntegrationStatus!](/api/graphql/v1/types/enums/integration-status.mdx) \{#status\} +Current status + + +#### [Integration.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this integration was created (UTC) + + +#### [Integration.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this integration was last modified (UTC) + + +#### [Integration.nextRunAt](#next-run-at)[DateTime](/api/graphql/v1/types/scalars/date-time.mdx) \{#next-run-at\} +When this integration will next execute + + + + + + +### Returned By + +[`integration`](/api/graphql/v1/operations/queries/integration.mdx) + +### Member Of + +[`IntegrationPayload`](/api/graphql/v1/types/objects/integration-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/integrations-page.mdx b/docs/api/graphql/v1/types/objects/integrations-page.mdx new file mode 100644 index 0000000..557d8ff --- /dev/null +++ b/docs/api/graphql/v1/types/objects/integrations-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: integrations-page +title: IntegrationsPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type IntegrationsPage { + cursor: PaginationCursor! + items: [IntegrationLeaf] +} +``` + + + + +### Fields + +#### [IntegrationsPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [IntegrationsPage.items](#items)[[IntegrationLeaf]](/api/graphql/v1/types/objects/integration-leaf.mdx) \{#items\} +A list of type integration_leaf. + + + + + + +### Returned By + +[`integrations`](/api/graphql/v1/operations/queries/integrations.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/oci-repo-leaf.mdx b/docs/api/graphql/v1/types/objects/oci-repo-leaf.mdx index 8a557a2..6b47df4 100644 --- a/docs/api/graphql/v1/types/objects/oci-repo-leaf.mdx +++ b/docs/api/graphql/v1/types/objects/oci-repo-leaf.mdx @@ -42,7 +42,7 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => -Reference to an OCI repository. +An OCI repository returned in list results. ```graphql diff --git a/docs/api/graphql/v1/types/objects/oci-repo.mdx b/docs/api/graphql/v1/types/objects/oci-repo.mdx index 52c6c44..5b49037 100644 --- a/docs/api/graphql/v1/types/objects/oci-repo.mdx +++ b/docs/api/graphql/v1/types/objects/oci-repo.mdx @@ -42,7 +42,7 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => -Reference to an OCI repository. +An OCI repository with its full details. ```graphql diff --git a/docs/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx b/docs/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx new file mode 100644 index 0000000..7ffa649 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx @@ -0,0 +1,94 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraint-leaf +title: OrganizationTagConstraintLeaf +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A tag constraint returned in list results. + + +```graphql +type OrganizationTagConstraintLeaf { + id: ID! + key: String! + scope: TagConstraintScope! + required: Boolean! + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [OrganizationTagConstraintLeaf.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Unique identifier + + +#### [OrganizationTagConstraintLeaf.key](#key)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#key\} +The tag key name (e.g. TEAM, DOMAIN) + + +#### [OrganizationTagConstraintLeaf.scope](#scope)[TagConstraintScope!](/api/graphql/v1/types/enums/tag-constraint-scope.mdx) \{#scope\} +Resource level where this tag is set + + +#### [OrganizationTagConstraintLeaf.required](#required)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#required\} +Whether this tag must be set when creating a resource at the specified scope + + +#### [OrganizationTagConstraintLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this constraint was created (UTC) + + +#### [OrganizationTagConstraintLeaf.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this constraint was last modified (UTC) + + + + + + +### Member Of + +[`OrganizationTagConstraintsPage`](/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx b/docs/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx new file mode 100644 index 0000000..78ebf99 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraint-payload +title: OrganizationTagConstraintPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type OrganizationTagConstraintPayload { + successful: Boolean! + messages: [ValidationMessage] + result: OrganizationTagConstraint +} +``` + + + + +### Fields + +#### [OrganizationTagConstraintPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [OrganizationTagConstraintPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [OrganizationTagConstraintPayload.result](#result)[OrganizationTagConstraint](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createOrganizationTagConstraint`](/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx) [`deleteOrganizationTagConstraint`](/api/graphql/v1/operations/mutations/delete-organization-tag-constraint.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/organization-tag-constraint.mdx b/docs/api/graphql/v1/types/objects/organization-tag-constraint.mdx new file mode 100644 index 0000000..966af6c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/organization-tag-constraint.mdx @@ -0,0 +1,94 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraint +title: OrganizationTagConstraint +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A tag constraint with its full details. + + +```graphql +type OrganizationTagConstraint { + id: ID! + key: String! + scope: TagConstraintScope! + required: Boolean! + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [OrganizationTagConstraint.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Unique identifier + + +#### [OrganizationTagConstraint.key](#key)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#key\} +The tag key name (e.g. TEAM, DOMAIN) + + +#### [OrganizationTagConstraint.scope](#scope)[TagConstraintScope!](/api/graphql/v1/types/enums/tag-constraint-scope.mdx) \{#scope\} +Resource level where this tag is set + + +#### [OrganizationTagConstraint.required](#required)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#required\} +Whether this tag must be set when creating a resource at the specified scope + + +#### [OrganizationTagConstraint.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this constraint was created (UTC) + + +#### [OrganizationTagConstraint.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this constraint was last modified (UTC) + + + + + + +### Member Of + +[`OrganizationTagConstraintPayload`](/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx b/docs/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx new file mode 100644 index 0000000..66261bf --- /dev/null +++ b/docs/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-tag-constraints-page +title: OrganizationTagConstraintsPage +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type OrganizationTagConstraintsPage { + cursor: PaginationCursor! + items: [OrganizationTagConstraintLeaf] +} +``` + + + + +### Fields + +#### [OrganizationTagConstraintsPage.cursor](#cursor)[PaginationCursor!](/api/graphql/v1/types/objects/pagination-cursor.mdx) \{#cursor\} +Pagination cursors + + +#### [OrganizationTagConstraintsPage.items](#items)[[OrganizationTagConstraintLeaf]](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) \{#items\} +A list of type organization_tag_constraint_leaf. + + + + + + +### Member Of + +[`Organization`](/api/graphql/v1/types/objects/organization.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/organization.mdx b/docs/api/graphql/v1/types/objects/organization.mdx index 3c0786c..ec70fb2 100644 --- a/docs/api/graphql/v1/types/objects/organization.mdx +++ b/docs/api/graphql/v1/types/objects/organization.mdx @@ -42,7 +42,7 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => -An organization with full details. +An organization with its full details and related resources. ```graphql @@ -52,6 +52,13 @@ type Organization { createdAt: DateTime! updatedAt: DateTime! logo: LogoOrganization + tagConstraints( + sort: OrganizationTagConstraintsSort + cursor: Cursor + ): OrganizationTagConstraintsPage + tagSchema( + scope: TagConstraintScope! + ): Map! } ``` @@ -80,10 +87,30 @@ When this organization was last modified (UTC) The organization's logo image. +#### [Organization.tagConstraints](#tag-constraints)[OrganizationTagConstraintsPage](/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx) \{#tag-constraints\} +Tag constraints that define the structural tags for this organization. +##### [Organization.tagConstraints.sort](#organization-tag-constraints-sort)[OrganizationTagConstraintsSort](/api/graphql/v1/types/inputs/organization-tag-constraints-sort.mdx) \{#organization-tag-constraints-sort\} +How to sort results +##### [Organization.tagConstraints.cursor](#organization-tag-constraints-cursor)[Cursor](/api/graphql/v1/types/inputs/cursor.mdx) \{#organization-tag-constraints-cursor\} +Pagination cursor from a previous response +#### [Organization.tagSchema](#tag-schema)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tag-schema\} +JSON Schema describing the tag fields for a given resource scope. +##### [Organization.tagSchema.scope](#organization-tag-schema-scope)[TagConstraintScope!](/api/graphql/v1/types/enums/tag-constraint-scope.mdx) \{#organization-tag-schema-scope\} +Resource level (e.g. PROJECT, ENVIRONMENT) + + + + + + +### Returned By + +[`organization`](/api/graphql/v1/operations/queries/organization.mdx) + ### Member Of [`OrganizationPayload`](/api/graphql/v1/types/objects/organization-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/pagination-cursor.mdx b/docs/api/graphql/v1/types/objects/pagination-cursor.mdx index d5e7114..f24c092 100644 --- a/docs/api/graphql/v1/types/objects/pagination-cursor.mdx +++ b/docs/api/graphql/v1/types/objects/pagination-cursor.mdx @@ -71,4 +71,4 @@ Cursor to the previous page ### Member Of -[`ComponentsPage`](/api/graphql/v1/types/objects/components-page.mdx) [`DeploymentsPage`](/api/graphql/v1/types/objects/deployments-page.mdx) [`EnvironmentsPage`](/api/graphql/v1/types/objects/environments-page.mdx) [`IdentitiesViewerPage`](/api/graphql/v1/types/objects/identities-viewer-page.mdx) [`InstancesPage`](/api/graphql/v1/types/objects/instances-page.mdx) [`InvitesViewerPage`](/api/graphql/v1/types/objects/invites-viewer-page.mdx) [`LinksPage`](/api/graphql/v1/types/objects/links-page.mdx) [`ParamDimensionsPage`](/api/graphql/v1/types/objects/param-dimensions-page.mdx) [`ProjectsPage`](/api/graphql/v1/types/objects/projects-page.mdx) [`ViewerOrganizationsPage`](/api/graphql/v1/types/objects/viewer-organizations-page.mdx) \ No newline at end of file +[`AuditLogsPage`](/api/graphql/v1/types/objects/audit-logs-page.mdx) [`ComponentsPage`](/api/graphql/v1/types/objects/components-page.mdx) [`DeploymentsPage`](/api/graphql/v1/types/objects/deployments-page.mdx) [`EnvironmentsPage`](/api/graphql/v1/types/objects/environments-page.mdx) [`GroupsPage`](/api/graphql/v1/types/objects/groups-page.mdx) [`IdentitiesViewerPage`](/api/graphql/v1/types/objects/identities-viewer-page.mdx) [`InstanceDependenciesPage`](/api/graphql/v1/types/objects/instance-dependencies-page.mdx) [`InstanceResourcesPage`](/api/graphql/v1/types/objects/instance-resources-page.mdx) [`InstancesPage`](/api/graphql/v1/types/objects/instances-page.mdx) [`IntegrationsPage`](/api/graphql/v1/types/objects/integrations-page.mdx) [`IntegrationTypesPage`](/api/graphql/v1/types/objects/integration-types-page.mdx) [`InvitesViewerPage`](/api/graphql/v1/types/objects/invites-viewer-page.mdx) [`LinksPage`](/api/graphql/v1/types/objects/links-page.mdx) [`OrganizationTagConstraintsPage`](/api/graphql/v1/types/objects/organization-tag-constraints-page.mdx) [`ParamDimensionsPage`](/api/graphql/v1/types/objects/param-dimensions-page.mdx) [`ProjectsPage`](/api/graphql/v1/types/objects/projects-page.mdx) [`ViewerOrganizationsPage`](/api/graphql/v1/types/objects/viewer-organizations-page.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/project-leaf.mdx b/docs/api/graphql/v1/types/objects/project-leaf.mdx index ed08f1c..b3cf79b 100644 --- a/docs/api/graphql/v1/types/objects/project-leaf.mdx +++ b/docs/api/graphql/v1/types/objects/project-leaf.mdx @@ -50,6 +50,7 @@ type ProjectLeaf { id: ID! name: String! description: String + tags: Map! createdAt: DateTime! updatedAt: DateTime! cost: CostSummary! @@ -73,6 +74,10 @@ Display name What this project is for +#### [ProjectLeaf.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this project + + #### [ProjectLeaf.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} When this project was created (UTC) diff --git a/docs/api/graphql/v1/types/objects/project.mdx b/docs/api/graphql/v1/types/objects/project.mdx index 096a5cc..0dca913 100644 --- a/docs/api/graphql/v1/types/objects/project.mdx +++ b/docs/api/graphql/v1/types/objects/project.mdx @@ -50,6 +50,7 @@ type Project { id: ID! name: String! description: String + tags: Map! createdAt: DateTime! updatedAt: DateTime! deletable: Deletable! @@ -79,6 +80,10 @@ Display name What this project is for +#### [Project.tags](#tags)[Map!](/api/graphql/v1/types/scalars/map.mdx) \{#tags\} +Tags assigned directly to this project + + #### [Project.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} When this project was created (UTC) diff --git a/docs/api/graphql/v1/types/objects/remote-reference-payload.mdx b/docs/api/graphql/v1/types/objects/remote-reference-payload.mdx new file mode 100644 index 0000000..c771900 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/remote-reference-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: remote-reference-payload +title: RemoteReferencePayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type RemoteReferencePayload { + successful: Boolean! + messages: [ValidationMessage] + result: RemoteReference +} +``` + + + + +### Fields + +#### [RemoteReferencePayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [RemoteReferencePayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [RemoteReferencePayload.result](#result)[RemoteReference](/api/graphql/v1/types/objects/remote-reference.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`removeRemoteReference`](/api/graphql/v1/operations/mutations/remove-remote-reference.mdx) [`setRemoteReference`](/api/graphql/v1/operations/mutations/set-remote-reference.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/remote-reference.mdx b/docs/api/graphql/v1/types/objects/remote-reference.mdx new file mode 100644 index 0000000..26f9478 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/remote-reference.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: remote-reference +title: RemoteReference +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A remote reference linking an instance to an external resource. + + +```graphql +type RemoteReference { + id: ID! + field: String! + createdAt: DateTime! + updatedAt: DateTime! + resource: Resource! +} +``` + + + + +### Fields + +#### [RemoteReference.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Unique identifier + + +#### [RemoteReference.field](#field)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#field\} +The resource field this reference is assigned to + + +#### [RemoteReference.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this remote reference was created (UTC) + + +#### [RemoteReference.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this remote reference was last modified (UTC) + + +#### [RemoteReference.resource](#resource)[Resource!](/api/graphql/v1/types/objects/resource.mdx) \{#resource\} +The external resource this reference points to. + + + + + + +### Member Of + +[`RemoteReferencePayload`](/api/graphql/v1/types/objects/remote-reference-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/resource.mdx b/docs/api/graphql/v1/types/objects/resource.mdx new file mode 100644 index 0000000..a355fbc --- /dev/null +++ b/docs/api/graphql/v1/types/objects/resource.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: resource +title: Resource +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +An artifact produced or consumed by an instance. + + +```graphql +type Resource { + id: ID! + name: String! + type: String + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [Resource.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Resource identifier (`package.field` for provisioned resources, UUID for imports) + + +#### [Resource.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Resource name + + +#### [Resource.type](#type)[String](/api/graphql/v1/types/scalars/string.mdx) \{#type\} +Resource type (e.g., the artifact definition type) + + +#### [Resource.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this resource was created (UTC) + + +#### [Resource.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this resource was last modified (UTC) + + + + + + +### Member Of + +[`InstanceDependency`](/api/graphql/v1/types/objects/instance-dependency.mdx) [`InstanceResource`](/api/graphql/v1/types/objects/instance-resource.mdx) [`RemoteReference`](/api/graphql/v1/types/objects/remote-reference.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/service-account-group-payload.mdx b/docs/api/graphql/v1/types/objects/service-account-group-payload.mdx new file mode 100644 index 0000000..82d9261 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/service-account-group-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: service-account-group-payload +title: ServiceAccountGroupPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type ServiceAccountGroupPayload { + successful: Boolean! + messages: [ValidationMessage] + result: ServiceAccount +} +``` + + + + +### Fields + +#### [ServiceAccountGroupPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [ServiceAccountGroupPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [ServiceAccountGroupPayload.result](#result)[ServiceAccount](/api/graphql/v1/types/objects/service-account.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`addServiceAccountToGroup`](/api/graphql/v1/operations/mutations/add-service-account-to-group.mdx) [`removeServiceAccountFromGroup`](/api/graphql/v1/operations/mutations/remove-service-account-from-group.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/service-account-payload.mdx b/docs/api/graphql/v1/types/objects/service-account-payload.mdx new file mode 100644 index 0000000..8fd569a --- /dev/null +++ b/docs/api/graphql/v1/types/objects/service-account-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: service-account-payload +title: ServiceAccountPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type ServiceAccountPayload { + successful: Boolean! + messages: [ValidationMessage] + result: ServiceAccount +} +``` + + + + +### Fields + +#### [ServiceAccountPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [ServiceAccountPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [ServiceAccountPayload.result](#result)[ServiceAccount](/api/graphql/v1/types/objects/service-account.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`deleteServiceAccount`](/api/graphql/v1/operations/mutations/delete-service-account.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx b/docs/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx new file mode 100644 index 0000000..52fb691 --- /dev/null +++ b/docs/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: service-account-with-secret-payload +title: ServiceAccountWithSecretPayload +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +No description + + +```graphql +type ServiceAccountWithSecretPayload { + successful: Boolean! + messages: [ValidationMessage] + result: ServiceAccountWithSecret +} +``` + + + + +### Fields + +#### [ServiceAccountWithSecretPayload.successful](#successful)[Boolean!](/api/graphql/v1/types/scalars/boolean.mdx) \{#successful\} +Indicates if the mutation completed successfully or not. + + +#### [ServiceAccountWithSecretPayload.messages](#messages)[[ValidationMessage]](/api/graphql/v1/types/objects/validation-message.mdx) \{#messages\} +A list of failed validations. May be blank or null if mutation succeeded. + + +#### [ServiceAccountWithSecretPayload.result](#result)[ServiceAccountWithSecret](/api/graphql/v1/types/objects/service-account-with-secret.mdx) \{#result\} +The object created/updated/deleted by the mutation. May be null if mutation failed. + + + + + + +### Returned By + +[`createServiceAccount`](/api/graphql/v1/operations/mutations/create-service-account.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/service-account-with-secret.mdx b/docs/api/graphql/v1/types/objects/service-account-with-secret.mdx new file mode 100644 index 0000000..ccde8ce --- /dev/null +++ b/docs/api/graphql/v1/types/objects/service-account-with-secret.mdx @@ -0,0 +1,94 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: service-account-with-secret +title: ServiceAccountWithSecret +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A service account with its secret token. The secret is only visible on creation. + + +```graphql +type ServiceAccountWithSecret { + id: ID! + name: String! + description: String + secret: String! + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [ServiceAccountWithSecret.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Service account identifier + + +#### [ServiceAccountWithSecret.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Service account name + + +#### [ServiceAccountWithSecret.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this service account is for + + +#### [ServiceAccountWithSecret.secret](#secret)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#secret\} +Secret token for authentication. Only returned on creation. + + +#### [ServiceAccountWithSecret.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this service account was created (UTC) + + +#### [ServiceAccountWithSecret.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this service account was last modified (UTC) + + + + + + +### Member Of + +[`ServiceAccountWithSecretPayload`](/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/service-account.mdx b/docs/api/graphql/v1/types/objects/service-account.mdx new file mode 100644 index 0000000..713da1a --- /dev/null +++ b/docs/api/graphql/v1/types/objects/service-account.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: service-account +title: ServiceAccount +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A service account with its full details. + + +```graphql +type ServiceAccount { + id: ID! + name: String! + description: String + createdAt: DateTime! + updatedAt: DateTime! +} +``` + + + + +### Fields + +#### [ServiceAccount.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Service account identifier + + +#### [ServiceAccount.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Service account name + + +#### [ServiceAccount.description](#description)[String](/api/graphql/v1/types/scalars/string.mdx) \{#description\} +What this service account is for + + +#### [ServiceAccount.createdAt](#created-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#created-at\} +When this service account was created (UTC) + + +#### [ServiceAccount.updatedAt](#updated-at)[DateTime!](/api/graphql/v1/types/scalars/date-time.mdx) \{#updated-at\} +When this service account was last modified (UTC) + + + + + + +### Member Of + +[`ServiceAccountGroupPayload`](/api/graphql/v1/types/objects/service-account-group-payload.mdx) [`ServiceAccountPayload`](/api/graphql/v1/types/objects/service-account-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/v1-audit-log-actor.mdx b/docs/api/graphql/v1/types/objects/v1-audit-log-actor.mdx new file mode 100644 index 0000000..89bc56c --- /dev/null +++ b/docs/api/graphql/v1/types/objects/v1-audit-log-actor.mdx @@ -0,0 +1,79 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: v1-audit-log-actor +title: V1AuditLogActor +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +The actor that performed an audit-logged action. + + +```graphql +type V1AuditLogActor { + id: ID! + type: AuditLogActorType! + name: String! +} +``` + + + + +### Fields + +#### [V1AuditLogActor.id](#id)[ID!](/api/graphql/v1/types/scalars/id.mdx) \{#id\} +Actor's unique identifier + + +#### [V1AuditLogActor.type](#type)[AuditLogActorType!](/api/graphql/v1/types/enums/audit-log-actor-type.mdx) \{#type\} +What kind of actor this is + + +#### [V1AuditLogActor.name](#name)[String!](/api/graphql/v1/types/scalars/string.mdx) \{#name\} +Display name (email for users, name for service accounts) + + + + + + +### Member Of + +[`AuditLog`](/api/graphql/v1/types/objects/audit-log.mdx) [`AuditLogLeaf`](/api/graphql/v1/types/objects/audit-log-leaf.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/objects/validation-message.mdx b/docs/api/graphql/v1/types/objects/validation-message.mdx index f0c13ab..2339279 100644 --- a/docs/api/graphql/v1/types/objects/validation-message.mdx +++ b/docs/api/graphql/v1/types/objects/validation-message.mdx @@ -118,4 +118,4 @@ A list of substitutions to be applied to a validation message template ### Member Of -[`AvatarViewerPayload`](/api/graphql/v1/types/objects/avatar-viewer-payload.mdx) [`ComponentPayload`](/api/graphql/v1/types/objects/component-payload.mdx) [`EnvironmentPayload`](/api/graphql/v1/types/objects/environment-payload.mdx) [`InviteViewerPayload`](/api/graphql/v1/types/objects/invite-viewer-payload.mdx) [`LinkPayload`](/api/graphql/v1/types/objects/link-payload.mdx) [`LogoOrganizationPayload`](/api/graphql/v1/types/objects/logo-organization-payload.mdx) [`OrganizationPayload`](/api/graphql/v1/types/objects/organization-payload.mdx) [`ProjectPayload`](/api/graphql/v1/types/objects/project-payload.mdx) \ No newline at end of file +[`AccessTokenPayload`](/api/graphql/v1/types/objects/access-token-payload.mdx) [`AccessTokenWithValuePayload`](/api/graphql/v1/types/objects/access-token-with-value-payload.mdx) [`AvatarViewerPayload`](/api/graphql/v1/types/objects/avatar-viewer-payload.mdx) [`ComponentPayload`](/api/graphql/v1/types/objects/component-payload.mdx) [`DeletedOrganizationMemberPayload`](/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx) [`EnvironmentPayload`](/api/graphql/v1/types/objects/environment-payload.mdx) [`GroupInvitationPayload`](/api/graphql/v1/types/objects/group-invitation-payload.mdx) [`GroupMemberPayload`](/api/graphql/v1/types/objects/group-member-payload.mdx) [`GroupPayload`](/api/graphql/v1/types/objects/group-payload.mdx) [`IntegrationActivationPayload`](/api/graphql/v1/types/objects/integration-activation-payload.mdx) [`IntegrationPayload`](/api/graphql/v1/types/objects/integration-payload.mdx) [`InviteViewerPayload`](/api/graphql/v1/types/objects/invite-viewer-payload.mdx) [`LinkPayload`](/api/graphql/v1/types/objects/link-payload.mdx) [`LogoOrganizationPayload`](/api/graphql/v1/types/objects/logo-organization-payload.mdx) [`OrganizationPayload`](/api/graphql/v1/types/objects/organization-payload.mdx) [`OrganizationTagConstraintPayload`](/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx) [`ProjectPayload`](/api/graphql/v1/types/objects/project-payload.mdx) [`RemoteReferencePayload`](/api/graphql/v1/types/objects/remote-reference-payload.mdx) [`ServiceAccountGroupPayload`](/api/graphql/v1/types/objects/service-account-group-payload.mdx) [`ServiceAccountPayload`](/api/graphql/v1/types/objects/service-account-payload.mdx) [`ServiceAccountWithSecretPayload`](/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/boolean.mdx b/docs/api/graphql/v1/types/scalars/boolean.mdx index 97c2133..bab0fd4 100644 --- a/docs/api/graphql/v1/types/scalars/boolean.mdx +++ b/docs/api/graphql/v1/types/scalars/boolean.mdx @@ -58,4 +58,4 @@ scalar Boolean ### Member Of -[`AvatarViewerPayload`](/api/graphql/v1/types/objects/avatar-viewer-payload.mdx) [`ComponentPayload`](/api/graphql/v1/types/objects/component-payload.mdx) [`Deletable`](/api/graphql/v1/types/objects/deletable.mdx) [`EnvironmentPayload`](/api/graphql/v1/types/objects/environment-payload.mdx) [`include`](/api/graphql/v1/operations/directives/include.mdx) [`InviteViewerPayload`](/api/graphql/v1/types/objects/invite-viewer-payload.mdx) [`LinkPayload`](/api/graphql/v1/types/objects/link-payload.mdx) [`LogoOrganizationPayload`](/api/graphql/v1/types/objects/logo-organization-payload.mdx) [`OrganizationPayload`](/api/graphql/v1/types/objects/organization-payload.mdx) [`ProjectPayload`](/api/graphql/v1/types/objects/project-payload.mdx) [`skip`](/api/graphql/v1/operations/directives/skip.mdx) \ No newline at end of file +[`AccessTokenPayload`](/api/graphql/v1/types/objects/access-token-payload.mdx) [`AccessTokenWithValuePayload`](/api/graphql/v1/types/objects/access-token-with-value-payload.mdx) [`AvatarViewerPayload`](/api/graphql/v1/types/objects/avatar-viewer-payload.mdx) [`ComponentPayload`](/api/graphql/v1/types/objects/component-payload.mdx) [`CreateOrganizationTagConstraintInput`](/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx) [`Deletable`](/api/graphql/v1/types/objects/deletable.mdx) [`DeletedOrganizationMemberPayload`](/api/graphql/v1/types/objects/deleted-organization-member-payload.mdx) [`EnvironmentPayload`](/api/graphql/v1/types/objects/environment-payload.mdx) [`GroupInvitationPayload`](/api/graphql/v1/types/objects/group-invitation-payload.mdx) [`GroupMemberPayload`](/api/graphql/v1/types/objects/group-member-payload.mdx) [`GroupPayload`](/api/graphql/v1/types/objects/group-payload.mdx) [`include`](/api/graphql/v1/operations/directives/include.mdx) [`IntegrationActivationPayload`](/api/graphql/v1/types/objects/integration-activation-payload.mdx) [`IntegrationPayload`](/api/graphql/v1/types/objects/integration-payload.mdx) [`InviteViewerPayload`](/api/graphql/v1/types/objects/invite-viewer-payload.mdx) [`LinkPayload`](/api/graphql/v1/types/objects/link-payload.mdx) [`LogoOrganizationPayload`](/api/graphql/v1/types/objects/logo-organization-payload.mdx) [`OrganizationPayload`](/api/graphql/v1/types/objects/organization-payload.mdx) [`OrganizationTagConstraint`](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) [`OrganizationTagConstraintLeaf`](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) [`OrganizationTagConstraintPayload`](/api/graphql/v1/types/objects/organization-tag-constraint-payload.mdx) [`ProjectPayload`](/api/graphql/v1/types/objects/project-payload.mdx) [`RemoteReferencePayload`](/api/graphql/v1/types/objects/remote-reference-payload.mdx) [`ServiceAccountGroupPayload`](/api/graphql/v1/types/objects/service-account-group-payload.mdx) [`ServiceAccountPayload`](/api/graphql/v1/types/objects/service-account-payload.mdx) [`ServiceAccountWithSecretPayload`](/api/graphql/v1/types/objects/service-account-with-secret-payload.mdx) [`skip`](/api/graphql/v1/operations/directives/skip.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/date-time.mdx b/docs/api/graphql/v1/types/scalars/date-time.mdx index 45361cb..d557e7c 100644 --- a/docs/api/graphql/v1/types/scalars/date-time.mdx +++ b/docs/api/graphql/v1/types/scalars/date-time.mdx @@ -61,4 +61,4 @@ scalar DateTime ### Member Of -[`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`Bundle`](/api/graphql/v1/types/objects/bundle.mdx) [`BundleLeaf`](/api/graphql/v1/types/objects/bundle-leaf.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) \ No newline at end of file +[`AccessToken`](/api/graphql/v1/types/objects/access-token.mdx) [`AccessTokenWithValue`](/api/graphql/v1/types/objects/access-token-with-value.mdx) [`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`AuditLog`](/api/graphql/v1/types/objects/audit-log.mdx) [`AuditLogLeaf`](/api/graphql/v1/types/objects/audit-log-leaf.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`Bundle`](/api/graphql/v1/types/objects/bundle.mdx) [`BundleLeaf`](/api/graphql/v1/types/objects/bundle-leaf.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`DatetimeFilter`](/api/graphql/v1/types/inputs/datetime-filter.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Group`](/api/graphql/v1/types/objects/group.mdx) [`GroupInvitation`](/api/graphql/v1/types/objects/group-invitation.mdx) [`GroupLeaf`](/api/graphql/v1/types/objects/group-leaf.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`Integration`](/api/graphql/v1/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/v1/types/objects/integration-activation.mdx) [`IntegrationLeaf`](/api/graphql/v1/types/objects/integration-leaf.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`OrganizationTagConstraint`](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) [`OrganizationTagConstraintLeaf`](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`RemoteReference`](/api/graphql/v1/types/objects/remote-reference.mdx) [`Resource`](/api/graphql/v1/types/objects/resource.mdx) [`ServiceAccount`](/api/graphql/v1/types/objects/service-account.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) [`ServiceAccountWithSecret`](/api/graphql/v1/types/objects/service-account-with-secret.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/id.mdx b/docs/api/graphql/v1/types/scalars/id.mdx index f26bce5..f9c6079 100644 --- a/docs/api/graphql/v1/types/scalars/id.mdx +++ b/docs/api/graphql/v1/types/scalars/id.mdx @@ -58,4 +58,4 @@ scalar ID ### Member Of -[`acceptGroupInvite`](/api/graphql/v1/operations/mutations/accept-group-invite.mdx) [`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`addComponent`](/api/graphql/v1/operations/mutations/add-component.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`bundle`](/api/graphql/v1/operations/queries/bundle.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`createEnvironment`](/api/graphql/v1/operations/mutations/create-environment.mdx) [`createProject`](/api/graphql/v1/operations/mutations/create-project.mdx) [`deleteEnvironment`](/api/graphql/v1/operations/mutations/delete-environment.mdx) [`deleteProject`](/api/graphql/v1/operations/mutations/delete-project.mdx) [`deployment`](/api/graphql/v1/operations/queries/deployment.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`deployments`](/api/graphql/v1/operations/queries/deployments.mdx) [`environment`](/api/graphql/v1/operations/queries/environment.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`environments`](/api/graphql/v1/operations/queries/environments.mdx) [`IdFilter`](/api/graphql/v1/types/inputs/id-filter.mdx) [`instance`](/api/graphql/v1/operations/queries/instance.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`instances`](/api/graphql/v1/operations/queries/instances.mdx) [`InviteGroupViewer`](/api/graphql/v1/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/v1/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`linkComponents`](/api/graphql/v1/operations/mutations/link-components.mdx) [`LinkComponentsInput`](/api/graphql/v1/types/inputs/link-components-input.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`paramDimensions`](/api/graphql/v1/operations/queries/param-dimensions.mdx) [`project`](/api/graphql/v1/operations/queries/project.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`projects`](/api/graphql/v1/operations/queries/projects.mdx) [`removeComponent`](/api/graphql/v1/operations/mutations/remove-component.mdx) [`removeOrganizationLogo`](/api/graphql/v1/operations/mutations/remove-organization-logo.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) [`setOrganizationLogo`](/api/graphql/v1/operations/mutations/set-organization-logo.mdx) [`unlinkComponents`](/api/graphql/v1/operations/mutations/unlink-components.mdx) [`updateEnvironment`](/api/graphql/v1/operations/mutations/update-environment.mdx) [`updateProject`](/api/graphql/v1/operations/mutations/update-project.mdx) [`ViewerOrganization`](/api/graphql/v1/types/objects/viewer-organization.mdx) \ No newline at end of file +[`acceptGroupInvite`](/api/graphql/v1/operations/mutations/accept-group-invite.mdx) [`AccessToken`](/api/graphql/v1/types/objects/access-token.mdx) [`AccessTokenWithValue`](/api/graphql/v1/types/objects/access-token-with-value.mdx) [`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`addComponent`](/api/graphql/v1/operations/mutations/add-component.mdx) [`addServiceAccountToGroup`](/api/graphql/v1/operations/mutations/add-service-account-to-group.mdx) [`auditLog`](/api/graphql/v1/operations/queries/audit-log.mdx) [`AuditLog`](/api/graphql/v1/types/objects/audit-log.mdx) [`AuditLogLeaf`](/api/graphql/v1/types/objects/audit-log-leaf.mdx) [`auditLogs`](/api/graphql/v1/operations/queries/audit-logs.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`bundle`](/api/graphql/v1/operations/queries/bundle.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`createAccessToken`](/api/graphql/v1/operations/mutations/create-access-token.mdx) [`createEnvironment`](/api/graphql/v1/operations/mutations/create-environment.mdx) [`createGroup`](/api/graphql/v1/operations/mutations/create-group.mdx) [`createGroupInvitation`](/api/graphql/v1/operations/mutations/create-group-invitation.mdx) [`createIntegration`](/api/graphql/v1/operations/mutations/create-integration.mdx) [`createOrganizationTagConstraint`](/api/graphql/v1/operations/mutations/create-organization-tag-constraint.mdx) [`createProject`](/api/graphql/v1/operations/mutations/create-project.mdx) [`createServiceAccount`](/api/graphql/v1/operations/mutations/create-service-account.mdx) [`deleteEnvironment`](/api/graphql/v1/operations/mutations/delete-environment.mdx) [`deleteGroup`](/api/graphql/v1/operations/mutations/delete-group.mdx) [`deleteGroupInvitation`](/api/graphql/v1/operations/mutations/delete-group-invitation.mdx) [`deleteGroupMember`](/api/graphql/v1/operations/mutations/delete-group-member.mdx) [`deleteIntegration`](/api/graphql/v1/operations/mutations/delete-integration.mdx) [`deleteOrganizationMember`](/api/graphql/v1/operations/mutations/delete-organization-member.mdx) [`deleteOrganizationTagConstraint`](/api/graphql/v1/operations/mutations/delete-organization-tag-constraint.mdx) [`deleteProject`](/api/graphql/v1/operations/mutations/delete-project.mdx) [`deleteServiceAccount`](/api/graphql/v1/operations/mutations/delete-service-account.mdx) [`deployment`](/api/graphql/v1/operations/queries/deployment.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`deployments`](/api/graphql/v1/operations/queries/deployments.mdx) [`environment`](/api/graphql/v1/operations/queries/environment.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`environments`](/api/graphql/v1/operations/queries/environments.mdx) [`group`](/api/graphql/v1/operations/queries/group.mdx) [`Group`](/api/graphql/v1/types/objects/group.mdx) [`GroupInvitation`](/api/graphql/v1/types/objects/group-invitation.mdx) [`GroupLeaf`](/api/graphql/v1/types/objects/group-leaf.mdx) [`groups`](/api/graphql/v1/operations/queries/groups.mdx) [`IdFilter`](/api/graphql/v1/types/inputs/id-filter.mdx) [`instance`](/api/graphql/v1/operations/queries/instance.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`instances`](/api/graphql/v1/operations/queries/instances.mdx) [`integration`](/api/graphql/v1/operations/queries/integration.mdx) [`Integration`](/api/graphql/v1/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/v1/types/objects/integration-activation.mdx) [`IntegrationLeaf`](/api/graphql/v1/types/objects/integration-leaf.mdx) [`integrations`](/api/graphql/v1/operations/queries/integrations.mdx) [`integrationTypes`](/api/graphql/v1/operations/queries/integration-types.mdx) [`InviteGroupViewer`](/api/graphql/v1/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/v1/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`linkComponents`](/api/graphql/v1/operations/mutations/link-components.mdx) [`LinkComponentsInput`](/api/graphql/v1/types/inputs/link-components-input.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`organization`](/api/graphql/v1/operations/queries/organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`OrganizationTagConstraint`](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) [`OrganizationTagConstraintLeaf`](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) [`paramDimensions`](/api/graphql/v1/operations/queries/param-dimensions.mdx) [`project`](/api/graphql/v1/operations/queries/project.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`projects`](/api/graphql/v1/operations/queries/projects.mdx) [`RemoteReference`](/api/graphql/v1/types/objects/remote-reference.mdx) [`removeComponent`](/api/graphql/v1/operations/mutations/remove-component.mdx) [`removeOrganizationLogo`](/api/graphql/v1/operations/mutations/remove-organization-logo.mdx) [`removeRemoteReference`](/api/graphql/v1/operations/mutations/remove-remote-reference.mdx) [`RemoveRemoteReferenceInput`](/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx) [`removeServiceAccountFromGroup`](/api/graphql/v1/operations/mutations/remove-service-account-from-group.mdx) [`Resource`](/api/graphql/v1/types/objects/resource.mdx) [`revokeAccessToken`](/api/graphql/v1/operations/mutations/revoke-access-token.mdx) [`ServiceAccount`](/api/graphql/v1/types/objects/service-account.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) [`ServiceAccountWithSecret`](/api/graphql/v1/types/objects/service-account-with-secret.mdx) [`setComponentPosition`](/api/graphql/v1/operations/mutations/set-component-position.mdx) [`setOrganizationLogo`](/api/graphql/v1/operations/mutations/set-organization-logo.mdx) [`setRemoteReference`](/api/graphql/v1/operations/mutations/set-remote-reference.mdx) [`SetRemoteReferenceInput`](/api/graphql/v1/types/inputs/set-remote-reference-input.mdx) [`unlinkComponents`](/api/graphql/v1/operations/mutations/unlink-components.mdx) [`updateEnvironment`](/api/graphql/v1/operations/mutations/update-environment.mdx) [`updateGroup`](/api/graphql/v1/operations/mutations/update-group.mdx) [`updateProject`](/api/graphql/v1/operations/mutations/update-project.mdx) [`V1AuditLogActor`](/api/graphql/v1/types/objects/v1-audit-log-actor.mdx) [`ViewerOrganization`](/api/graphql/v1/types/objects/viewer-organization.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/int.mdx b/docs/api/graphql/v1/types/scalars/int.mdx index 0018db3..20d87d9 100644 --- a/docs/api/graphql/v1/types/scalars/int.mdx +++ b/docs/api/graphql/v1/types/scalars/int.mdx @@ -58,4 +58,4 @@ scalar Int ### Member Of -[`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`Cursor`](/api/graphql/v1/types/inputs/cursor.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) \ No newline at end of file +[`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`ComponentPosition`](/api/graphql/v1/types/objects/component-position.mdx) [`CreateAccessTokenInput`](/api/graphql/v1/types/inputs/create-access-token-input.mdx) [`Cursor`](/api/graphql/v1/types/inputs/cursor.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`SetComponentPositionInput`](/api/graphql/v1/types/inputs/set-component-position-input.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/map.mdx b/docs/api/graphql/v1/types/scalars/map.mdx new file mode 100644 index 0000000..29aeedf --- /dev/null +++ b/docs/api/graphql/v1/types/scalars/map.mdx @@ -0,0 +1,61 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: map +title: Map +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +A key-value map. Does not accept arrays, strings, or other JSON primitives. + + +```graphql +scalar Map +``` + + + + + + + + +### Member Of + +[`AddComponentInput`](/api/graphql/v1/types/inputs/add-component-input.mdx) [`AuditLog`](/api/graphql/v1/types/objects/audit-log.mdx) [`AuditLogLeaf`](/api/graphql/v1/types/objects/audit-log-leaf.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`CreateEnvironmentInput`](/api/graphql/v1/types/inputs/create-environment-input.mdx) [`CreateIntegrationInput`](/api/graphql/v1/types/inputs/create-integration-input.mdx) [`CreateProjectInput`](/api/graphql/v1/types/inputs/create-project-input.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`Integration`](/api/graphql/v1/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/v1/types/objects/integration-activation.mdx) [`IntegrationLeaf`](/api/graphql/v1/types/objects/integration-leaf.mdx) [`IntegrationTypeInfo`](/api/graphql/v1/types/objects/integration-type-info.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`UpdateEnvironmentInput`](/api/graphql/v1/types/inputs/update-environment-input.mdx) [`UpdateProjectInput`](/api/graphql/v1/types/inputs/update-project-input.mdx) \ No newline at end of file diff --git a/docs/api/graphql/v1/types/scalars/string.mdx b/docs/api/graphql/v1/types/scalars/string.mdx index 25887dd..68695ca 100644 --- a/docs/api/graphql/v1/types/scalars/string.mdx +++ b/docs/api/graphql/v1/types/scalars/string.mdx @@ -58,4 +58,4 @@ scalar String ### Member Of -[`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`AddComponentInput`](/api/graphql/v1/types/inputs/add-component-input.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`Bundle`](/api/graphql/v1/types/objects/bundle.mdx) [`BundleLeaf`](/api/graphql/v1/types/objects/bundle-leaf.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`CostSample`](/api/graphql/v1/types/objects/cost-sample.mdx) [`CreateEnvironmentInput`](/api/graphql/v1/types/inputs/create-environment-input.mdx) [`CreateOrganizationInput`](/api/graphql/v1/types/inputs/create-organization-input.mdx) [`CreateProjectInput`](/api/graphql/v1/types/inputs/create-project-input.mdx) [`Cursor`](/api/graphql/v1/types/inputs/cursor.mdx) [`DeletionConstraint`](/api/graphql/v1/types/objects/deletion-constraint.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`deprecated`](/api/graphql/v1/types/directives/deprecated.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`inputs`](/api/graphql/v1/types/directives/inputs.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`InviteGroupViewer`](/api/graphql/v1/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/v1/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`LinkComponentsInput`](/api/graphql/v1/types/inputs/link-components-input.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`PaginationCursor`](/api/graphql/v1/types/objects/pagination-cursor.mdx) [`ParamDimension`](/api/graphql/v1/types/objects/param-dimension.mdx) [`ParamDimensionFilter`](/api/graphql/v1/types/inputs/param-dimension-filter.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`Server`](/api/graphql/v1/types/objects/server.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) [`specifiedBy`](/api/graphql/v1/types/directives/specified-by.mdx) [`SsoProvider`](/api/graphql/v1/types/objects/sso-provider.mdx) [`StringFilter`](/api/graphql/v1/types/inputs/string-filter.mdx) [`UpdateEnvironmentInput`](/api/graphql/v1/types/inputs/update-environment-input.mdx) [`UpdateProjectInput`](/api/graphql/v1/types/inputs/update-project-input.mdx) [`ValidationMessage`](/api/graphql/v1/types/objects/validation-message.mdx) [`ValidationOption`](/api/graphql/v1/types/objects/validation-option.mdx) [`ViewerOrganization`](/api/graphql/v1/types/objects/viewer-organization.mdx) \ No newline at end of file +[`AccessToken`](/api/graphql/v1/types/objects/access-token.mdx) [`AccessTokenWithValue`](/api/graphql/v1/types/objects/access-token-with-value.mdx) [`AccountIdentityViewer`](/api/graphql/v1/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/v1/types/objects/account-viewer.mdx) [`AddComponentInput`](/api/graphql/v1/types/inputs/add-component-input.mdx) [`AuditLog`](/api/graphql/v1/types/objects/audit-log.mdx) [`AuditLogLeaf`](/api/graphql/v1/types/objects/audit-log-leaf.mdx) [`AvatarViewer`](/api/graphql/v1/types/objects/avatar-viewer.mdx) [`Bundle`](/api/graphql/v1/types/objects/bundle.mdx) [`BundleLeaf`](/api/graphql/v1/types/objects/bundle-leaf.mdx) [`Component`](/api/graphql/v1/types/objects/component.mdx) [`ComponentLeaf`](/api/graphql/v1/types/objects/component-leaf.mdx) [`CostSample`](/api/graphql/v1/types/objects/cost-sample.mdx) [`CreateAccessTokenInput`](/api/graphql/v1/types/inputs/create-access-token-input.mdx) [`CreateEnvironmentInput`](/api/graphql/v1/types/inputs/create-environment-input.mdx) [`CreateGroupInput`](/api/graphql/v1/types/inputs/create-group-input.mdx) [`createGroupInvitation`](/api/graphql/v1/operations/mutations/create-group-invitation.mdx) [`CreateOrganizationInput`](/api/graphql/v1/types/inputs/create-organization-input.mdx) [`CreateOrganizationTagConstraintInput`](/api/graphql/v1/types/inputs/create-organization-tag-constraint-input.mdx) [`CreateProjectInput`](/api/graphql/v1/types/inputs/create-project-input.mdx) [`CreateServiceAccountInput`](/api/graphql/v1/types/inputs/create-service-account-input.mdx) [`Cursor`](/api/graphql/v1/types/inputs/cursor.mdx) [`DeletedOrganizationMember`](/api/graphql/v1/types/objects/deleted-organization-member.mdx) [`deleteGroupInvitation`](/api/graphql/v1/operations/mutations/delete-group-invitation.mdx) [`deleteGroupMember`](/api/graphql/v1/operations/mutations/delete-group-member.mdx) [`deleteOrganizationMember`](/api/graphql/v1/operations/mutations/delete-organization-member.mdx) [`DeletionConstraint`](/api/graphql/v1/types/objects/deletion-constraint.mdx) [`Deployment`](/api/graphql/v1/types/objects/deployment.mdx) [`DeploymentLeaf`](/api/graphql/v1/types/objects/deployment-leaf.mdx) [`deprecated`](/api/graphql/v1/types/directives/deprecated.mdx) [`Environment`](/api/graphql/v1/types/objects/environment.mdx) [`EnvironmentLeaf`](/api/graphql/v1/types/objects/environment-leaf.mdx) [`Group`](/api/graphql/v1/types/objects/group.mdx) [`GroupInvitation`](/api/graphql/v1/types/objects/group-invitation.mdx) [`GroupLeaf`](/api/graphql/v1/types/objects/group-leaf.mdx) [`GroupMember`](/api/graphql/v1/types/objects/group-member.mdx) [`inputs`](/api/graphql/v1/types/directives/inputs.mdx) [`Instance`](/api/graphql/v1/types/objects/instance.mdx) [`InstanceDependency`](/api/graphql/v1/types/objects/instance-dependency.mdx) [`InstanceLeaf`](/api/graphql/v1/types/objects/instance-leaf.mdx) [`InstanceResource`](/api/graphql/v1/types/objects/instance-resource.mdx) [`Integration`](/api/graphql/v1/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/v1/types/objects/integration-activation.mdx) [`IntegrationLeaf`](/api/graphql/v1/types/objects/integration-leaf.mdx) [`IntegrationTypeInfo`](/api/graphql/v1/types/objects/integration-type-info.mdx) [`InviteGroupViewer`](/api/graphql/v1/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/v1/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/v1/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/v1/types/objects/link.mdx) [`LinkComponentsInput`](/api/graphql/v1/types/inputs/link-components-input.mdx) [`LinkLeaf`](/api/graphql/v1/types/objects/link-leaf.mdx) [`LogoOrganization`](/api/graphql/v1/types/objects/logo-organization.mdx) [`Organization`](/api/graphql/v1/types/objects/organization.mdx) [`OrganizationTagConstraint`](/api/graphql/v1/types/objects/organization-tag-constraint.mdx) [`OrganizationTagConstraintLeaf`](/api/graphql/v1/types/objects/organization-tag-constraint-leaf.mdx) [`PaginationCursor`](/api/graphql/v1/types/objects/pagination-cursor.mdx) [`ParamDimension`](/api/graphql/v1/types/objects/param-dimension.mdx) [`ParamDimensionFilter`](/api/graphql/v1/types/inputs/param-dimension-filter.mdx) [`Project`](/api/graphql/v1/types/objects/project.mdx) [`ProjectLeaf`](/api/graphql/v1/types/objects/project-leaf.mdx) [`RemoteReference`](/api/graphql/v1/types/objects/remote-reference.mdx) [`RemoveRemoteReferenceInput`](/api/graphql/v1/types/inputs/remove-remote-reference-input.mdx) [`Resource`](/api/graphql/v1/types/objects/resource.mdx) [`Server`](/api/graphql/v1/types/objects/server.mdx) [`ServiceAccount`](/api/graphql/v1/types/objects/service-account.mdx) [`ServiceAccountViewer`](/api/graphql/v1/types/objects/service-account-viewer.mdx) [`ServiceAccountWithSecret`](/api/graphql/v1/types/objects/service-account-with-secret.mdx) [`SetRemoteReferenceInput`](/api/graphql/v1/types/inputs/set-remote-reference-input.mdx) [`specifiedBy`](/api/graphql/v1/types/directives/specified-by.mdx) [`SsoProvider`](/api/graphql/v1/types/objects/sso-provider.mdx) [`StringFilter`](/api/graphql/v1/types/inputs/string-filter.mdx) [`UpdateEnvironmentInput`](/api/graphql/v1/types/inputs/update-environment-input.mdx) [`UpdateGroupInput`](/api/graphql/v1/types/inputs/update-group-input.mdx) [`UpdateProjectInput`](/api/graphql/v1/types/inputs/update-project-input.mdx) [`V1AuditLogActor`](/api/graphql/v1/types/objects/v1-audit-log-actor.mdx) [`ValidationMessage`](/api/graphql/v1/types/objects/validation-message.mdx) [`ValidationOption`](/api/graphql/v1/types/objects/validation-option.mdx) [`ViewerOrganization`](/api/graphql/v1/types/objects/viewer-organization.mdx) \ No newline at end of file diff --git a/schema/v1/schema.graphql b/schema/v1/schema.graphql index ff3208b..0028302 100644 --- a/schema/v1/schema.graphql +++ b/schema/v1/schema.graphql @@ -151,11 +151,92 @@ type RootQueryType { id: BundleId! ): Bundle + "List all groups in your organization. Returns a paginated list." + groups( + "Your organization ID" + organizationId: ID! + + "How to sort results" + sort: GroupsSort + + "Pagination cursor from a previous response" + cursor: Cursor + ): GroupsPage + + "Get a single group by its ID." + group( + "Your organization ID" + organizationId: ID! + + "The group ID" + id: ID! + ): Group + + "Get your organization and its settings." + organization( + "Your organization ID" + organizationId: ID! + ): Organization + "Get information about yourself (the authenticated user or service account)." viewer: Viewer "Get server info and available authentication methods. No authentication required." server: Server! + + "List all supported integration types. Use these to discover what integrations are available and their configuration schemas." + integrationTypes( + "Your organization ID" + organizationId: ID! + ): IntegrationTypesPage + + "List your organization's configured integrations." + integrations( + "Your organization ID" + organizationId: ID! + + "Filter results" + filter: IntegrationsFilter + + "How to sort results" + sort: IntegrationsSort + + "Pagination cursor from a previous response" + cursor: Cursor + ): IntegrationsPage + + "Get a single integration by its type ID." + integration( + "Your organization ID" + organizationId: ID! + + "The integration type ID (e.g., 'aws-cost-and-usage-reports')" + id: ID! + ): Integration + + "List audit log events for your organization. Returns newest first by default." + auditLogs( + "Your organization ID" + organizationId: ID! + + "Filter results" + filter: AuditLogsFilter + + "How to sort results" + sort: AuditLogsSort + + "Pagination cursor from a previous response" + cursor: Cursor + ): AuditLogsPage + + "Get a single audit log event by its ID." + auditLog( + "Your organization ID" + organizationId: ID! + + "The audit log event ID" + id: ID! + ): AuditLog } type RootMutationType { @@ -267,6 +348,21 @@ type RootMutationType { id: ID! ): LinkPayload + "Set the position of a component on the canvas." + setComponentPosition( + "Your organization ID" + organizationId: ID! + + "The project ID" + projectId: ID! + + "The component ID" + id: ID! + + "Set the position of a component on the canvas." + input: SetComponentPositionInput! + ): ComponentPayload @inputs(name: "setComponentPosition", schema: "\/graphql\/v1\/inputs\/setComponentPosition.json", ui: "\/graphql\/v1\/inputs\/setComponentPosition.ui.json") + "Accept a pending group invitation." acceptGroupInvite( "The invitation ID to accept" @@ -282,6 +378,90 @@ type RootMutationType { "Remove your profile avatar." removeAccountAvatar: AvatarViewerPayload + "Create a new group in your organization." + createGroup( + "Your organization ID" + organizationId: ID! + + "Create a new group. Groups control which projects members can access." + input: CreateGroupInput! + ): GroupPayload @inputs(name: "createGroup", schema: "\/graphql\/v1\/inputs\/createGroup.json", ui: "\/graphql\/v1\/inputs\/createGroup.ui.json") + + "Update a group's name or description." + updateGroup( + "Your organization ID" + organizationId: ID! + + "The group ID to update" + id: ID! + + "Update a group's name or description." + input: UpdateGroupInput! + ): GroupPayload @inputs(name: "updateGroup", schema: "\/graphql\/v1\/inputs\/updateGroup.json", ui: "\/graphql\/v1\/inputs\/updateGroup.ui.json") + + "Delete a custom group. Predefined organization groups cannot be deleted." + deleteGroup( + "Your organization ID" + organizationId: ID! + + "The group ID to delete" + id: ID! + ): GroupPayload + + "Invite a user to a group by email address." + createGroupInvitation( + "Your organization ID" + organizationId: ID! + + "The group ID to invite the user to" + groupId: ID! + + "Email address of the user to invite" + email: String! + ): GroupInvitationPayload + + "Remove a pending invitation from a group." + deleteGroupInvitation( + "Your organization ID" + organizationId: ID! + + "The group ID" + groupId: ID! + + "Email address of the invitation to remove" + email: String! + ): GroupInvitationPayload + + "Remove a member from a group." + deleteGroupMember( + "Your organization ID" + organizationId: ID! + + "The group ID" + groupId: ID! + + "Email address of the member to remove" + email: String! + ): GroupMemberPayload + + "Create a new tag constraint in your organization." + createOrganizationTagConstraint( + "Your organization ID" + organizationId: ID! + + "Define a structural tag constraint for your organization. Tag constraints control which tags can be set on resources at each level of the hierarchy." + input: CreateOrganizationTagConstraintInput! + ): OrganizationTagConstraintPayload @inputs(name: "createOrganizationTagConstraint", schema: "\/graphql\/v1\/inputs\/createOrganizationTagConstraint.json", ui: "\/graphql\/v1\/inputs\/createOrganizationTagConstraint.ui.json") + + "Delete a tag constraint from your organization." + deleteOrganizationTagConstraint( + "Your organization ID" + organizationId: ID! + + "The tag constraint ID to delete" + id: ID! + ): OrganizationTagConstraintPayload + "Create a new organization. You become the owner and first admin." createOrganization( "Create a new organization. An organization is the top-level container for all your projects, environments, and infrastructure resources." @@ -297,11 +477,668 @@ type RootMutationType { logo: Upload! ): LogoOrganizationPayload - "Remove your organization's logo." - removeOrganizationLogo( - "Your organization ID" - organizationId: ID! - ): LogoOrganizationPayload + "Remove your organization's logo." + removeOrganizationLogo( + "Your organization ID" + organizationId: ID! + ): LogoOrganizationPayload + + "Remove a member from the organization. Deletes all group memberships and pending invitations." + deleteOrganizationMember( + "Your organization ID" + organizationId: ID! + + "Email address of the member to remove" + email: String! + ): DeletedOrganizationMemberPayload + + "Create and activate an integration for your organization." + createIntegration( + "Your organization ID" + organizationId: ID! + + "The integration type to configure (e.g., 'aws-cost-and-usage-reports')" + id: ID! + + "Create and activate an integration for your organization. The config and auth payloads must conform to the integration type's configSchema and authSchema respectively." + input: CreateIntegrationInput! + ): IntegrationActivationPayload @inputs(name: "createIntegration", schema: "\/graphql\/v1\/inputs\/createIntegration.json", ui: "\/graphql\/v1\/inputs\/createIntegration.ui.json") + + "Delete an integration. This disables it first, then removes the configuration." + deleteIntegration( + "Your organization ID" + organizationId: ID! + + "The integration type ID to delete" + id: ID! + ): IntegrationPayload + + "Create a scoped, time-limited access token. The token value is only returned in this response." + createAccessToken( + "Your organization ID" + organizationId: ID! + + "Create a scoped, time-limited access token for API authentication." + input: CreateAccessTokenInput! + ): AccessTokenWithValuePayload @inputs(name: "createAccessToken", schema: "\/graphql\/v1\/inputs\/createAccessToken.json", ui: "\/graphql\/v1\/inputs\/createAccessToken.ui.json") + + "Revoke an access token. The token immediately stops working but the record is preserved for audit." + revokeAccessToken( + "Your organization ID" + organizationId: ID! + + "The access token ID to revoke" + id: ID! + ): AccessTokenPayload + + "Create a new service account. The secret token is only returned in this response." + createServiceAccount( + "Your organization ID" + organizationId: ID! + + "Create a new service account for programmatic API access." + input: CreateServiceAccountInput! + ): ServiceAccountWithSecretPayload @inputs(name: "createServiceAccount", schema: "\/graphql\/v1\/inputs\/createServiceAccount.json", ui: "\/graphql\/v1\/inputs\/createServiceAccount.ui.json") + + "Delete a service account. This action cannot be undone." + deleteServiceAccount( + "Your organization ID" + organizationId: ID! + + "The service account ID to delete" + id: ID! + ): ServiceAccountPayload + + "Add a service account to a group, granting it the group's access level." + addServiceAccountToGroup( + "Your organization ID" + organizationId: ID! + + "The service account ID" + serviceAccountId: ID! + + "The group ID to add the service account to" + groupId: ID! + ): ServiceAccountGroupPayload + + "Remove a service account from a group." + removeServiceAccountFromGroup( + "Your organization ID" + organizationId: ID! + + "The service account ID" + serviceAccountId: ID! + + "The group ID to remove the service account from" + groupId: ID! + ): ServiceAccountGroupPayload + + """ + Set a remote reference on an instance. + + Links an instance's resource field to a resource from another project or + an imported resource. The instance must not be in a provisioned or failed state. + """ + setRemoteReference( + "Your organization ID" + organizationId: ID! + + "Link an instance's resource field to a resource from another project or an imported resource. The instance must not be in a provisioned or failed state." + input: SetRemoteReferenceInput! + ): RemoteReferencePayload @inputs(name: "setRemoteReference", schema: "\/graphql\/v1\/inputs\/setRemoteReference.json", ui: "\/graphql\/v1\/inputs\/setRemoteReference.ui.json") + + """ + Remove a remote reference from an instance. + + The reference can only be removed if no provisioned instances are connected + through it. Removing the last remote reference resets the instance status + from EXTERNAL back to INITIALIZED. + """ + removeRemoteReference( + "Your organization ID" + organizationId: ID! + + "Remove a remote reference from an instance. The reference can only be removed if no provisioned instances are connected through it." + input: RemoveRemoteReferenceInput! + ): RemoteReferencePayload @inputs(name: "removeRemoteReference", schema: "\/graphql\/v1\/inputs\/removeRemoteReference.json", ui: "\/graphql\/v1\/inputs\/removeRemoteReference.ui.json") +} + +"Link an instance's resource field to a resource from another project or an imported resource. The instance must not be in a provisioned or failed state." +input SetRemoteReferenceInput { + "The resource field to assign the reference to" + field: String! + + "The instance to set the remote reference on" + instanceId: ID! + + "The resource to reference — either a UUID for imported resources or 'instance.field' for provisioned resources" + resourceId: ID! +} + +"Remove a remote reference from an instance. The reference can only be removed if no provisioned instances are connected through it." +input RemoveRemoteReferenceInput { + "The resource field to remove the reference from" + field: String! + + "The instance the reference belongs to" + instanceId: ID! +} + +"A remote reference linking an instance to an external resource." +type RemoteReference { + "Unique identifier" + id: ID! + + "The resource field this reference is assigned to" + field: String! + + "When this remote reference was created (UTC)" + createdAt: DateTime! + + "When this remote reference was last modified (UTC)" + updatedAt: DateTime! + + "The external resource this reference points to." + resource: Resource! +} + +type RemoteReferencePayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: RemoteReference +} + +"A service account with its full details." +type ServiceAccount { + "Service account identifier" + id: ID! + + "Service account name" + name: String! + + "What this service account is for" + description: String + + "When this service account was created (UTC)" + createdAt: DateTime! + + "When this service account was last modified (UTC)" + updatedAt: DateTime! +} + +"A service account with its secret token. The secret is only visible on creation." +type ServiceAccountWithSecret { + "Service account identifier" + id: ID! + + "Service account name" + name: String! + + "What this service account is for" + description: String + + "Secret token for authentication. Only returned on creation." + secret: String! + + "When this service account was created (UTC)" + createdAt: DateTime! + + "When this service account was last modified (UTC)" + updatedAt: DateTime! +} + +type ServiceAccountPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: ServiceAccount +} + +type ServiceAccountWithSecretPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: ServiceAccountWithSecret +} + +type ServiceAccountGroupPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: ServiceAccount +} + +"Create a new service account for programmatic API access." +input CreateServiceAccountInput { + "What this service account is used for" + description: String + + "A human-readable name for the service account" + name: String! +} + +"An access token with the raw token value. Only returned on creation." +type AccessTokenWithValue { + "Access token identifier" + id: ID! + + "Label for this token" + name: String! + + "The full token value. Store securely — this is the only time it is shown." + token: String! + + "Short prefix for identifying this token in lists (e.g., md_a1b2c3d4)" + prefix: String! + + "Permission scopes granted to this token" + scopes: [String!]! + + "When this token expires (UTC)" + expiresAt: DateTime! + + "When this token was created (UTC)" + createdAt: DateTime! +} + +"An access token's metadata. Does not include the raw token value." +type AccessToken { + "Access token identifier" + id: ID! + + "Label for this token" + name: String! + + "Short prefix for identifying this token (e.g., md_a1b2c3d4)" + prefix: String! + + "Permission scopes granted to this token" + scopes: [String!]! + + "When this token expires (UTC)" + expiresAt: DateTime! + + "When this token was revoked, if applicable (UTC)" + revokedAt: DateTime + + "When this token was last used for authentication (UTC)" + lastUsedAt: DateTime + + "When this token was created (UTC)" + createdAt: DateTime! +} + +type AccessTokenWithValuePayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: AccessTokenWithValue +} + +type AccessTokenPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: AccessToken +} + +"Create a scoped, time-limited access token for API authentication." +input CreateAccessTokenInput { + "How many minutes until this token expires. Defaults to 60 (1 hour). Maximum ~5,256,000 (10 years)." + expiresInMinutes: Int + + "A label to identify this token (e.g., 'CI deploy key')" + name: String! + + "Permission scopes. At least one required. Currently only [\"*\"] (full access) is supported." + scopes: [String!]! + + "Create the token on behalf of this service account. Omit to create for the authenticated identity." + serviceAccountId: String +} + +"The type of actor that performed an action." +enum AuditLogActorType { + "Human user account" + ACCOUNT + + "Service account (API key)" + SERVICE_ACCOUNT + + "Automated deployment" + DEPLOYMENT + + "System action or legacy event" + SYSTEM +} + +"Available fields for sorting audit logs." +enum AuditLogsSortField { + "Sort by when the event occurred" + OCCURRED_AT + + "Sort by event type" + TYPE +} + +"Sorting options for the audit logs list." +input AuditLogsSort { + "Which field to sort by" + field: AuditLogsSortField! + + "Sort direction" + order: SortOrder! +} + +"Filter by the type of actor that performed the action." +input AuditLogActorTypeFilter { + "Exact match" + eq: AuditLogActorType + + "Match any of these actor types" + in: [AuditLogActorType!] +} + +"Filter which audit logs to return." +input AuditLogsFilter { + "Filter by when the event occurred" + occurredAt: DatetimeFilter + + "Filter by event type (e.g., 'project.created')" + type: StringFilter + + "Filter by who performed the action" + actorType: AuditLogActorTypeFilter + + "Filter by the actor's ID" + actorId: IdFilter +} + +"The actor that performed an audit-logged action." +type V1AuditLogActor { + "Actor's unique identifier" + id: ID! + + "What kind of actor this is" + type: AuditLogActorType! + + "Display name (email for users, name for service accounts)" + name: String! +} + +"An audit log event returned in list results." +type AuditLogLeaf { + "Unique event identifier" + id: ID! + + "When the event occurred (UTC)" + occurredAt: DateTime! + + "Event type (e.g., 'project.created')" + type: String! + + "Where the event originated" + source: String! + + "Resource the event applies to (MRI format)" + subject: String + + "Event payload with context and resource details" + data: Map + + "Who performed this action" + actor: V1AuditLogActor! +} + +"An audit log event with full details." +type AuditLog { + "Unique event identifier" + id: ID! + + "When the event occurred (UTC)" + occurredAt: DateTime! + + "Event type (e.g., 'project.created')" + type: String! + + "Where the event originated" + source: String! + + "Resource the event applies to (MRI format)" + subject: String + + "Event payload with context and resource details" + data: Map + + "Who performed this action" + actor: V1AuditLogActor! +} + +type AuditLogsPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type audit_log_leaf." + items: [AuditLogLeaf] +} + +"The current status of an integration." +enum IntegrationStatus { + "Integration is inactive" + DISABLED + + "Integration is being deactivated" + DISABLING + + "Integration is being activated" + ENABLING + + "Integration is active and running" + ENABLED +} + +"Available fields for sorting integrations." +enum IntegrationsSortField { + "Sort by when the integration was created" + CREATED_AT + + "Sort alphabetically by integration type" + ID +} + +"Filter for integration status." +input IntegrationStatusFilter { + "Exact match" + eq: IntegrationStatus + + "Match any of these statuses" + in: [IntegrationStatus!] +} + +"Filter options for the integrations list." +input IntegrationsFilter { + "Filter by integration type ID" + id: StringFilter + + "Filter by status" + status: IntegrationStatusFilter +} + +"Sorting options for the integrations list." +input IntegrationsSort { + "Which field to sort by" + field: IntegrationsSortField! + + "Sort direction" + order: SortOrder! +} + +"Create and activate an integration for your organization. The config and auth payloads must conform to the integration type's configSchema and authSchema respectively." +input CreateIntegrationInput { + "Authentication credentials. Must conform to the integration type's authSchema. Write-only — not returned in queries." + auth: Map! + + "Integration-specific configuration. Must conform to the integration type's configSchema." + config: Map! +} + +"A supported integration type that can be configured for your organization." +type IntegrationTypeInfo { + "Unique identifier for this integration type" + id: String! + + "Display name" + name: String! + + "What this integration does" + description: String + + "URL to the documentation" + docs: String! + + "JSON Schema for the `config` field when creating this integration" + configSchema: Map! + + "JSON Schema for the `auth` field when creating this integration" + authSchema: Map! +} + +type IntegrationTypesPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type integration_type_info." + items: [IntegrationTypeInfo] +} + +"A configured integration returned in list results." +type IntegrationLeaf { + "Integration type identifier (unique per organization)" + id: ID! + + "The type of integration" + integrationTypeId: String! + + "Integration-specific configuration" + config: Map! + + "Current status" + status: IntegrationStatus! + + "When this integration was created (UTC)" + createdAt: DateTime! + + "When this integration was last modified (UTC)" + updatedAt: DateTime! + + "When this integration will next execute" + nextRunAt: DateTime +} + +"A configured integration with its full details." +type Integration { + "Integration type identifier (unique per organization)" + id: ID! + + "The type of integration" + integrationTypeId: String! + + "Integration-specific configuration" + config: Map! + + "Current status" + status: IntegrationStatus! + + "When this integration was created (UTC)" + createdAt: DateTime! + + "When this integration was last modified (UTC)" + updatedAt: DateTime! + + "When this integration will next execute" + nextRunAt: DateTime +} + +"A newly created integration with setup instructions." +type IntegrationActivation { + "Integration type identifier" + id: ID! + + "The type of integration" + integrationTypeId: String! + + "Integration-specific configuration" + config: Map! + + "Current status" + status: IntegrationStatus! + + "When this integration was created (UTC)" + createdAt: DateTime! + + "When this integration was last modified (UTC)" + updatedAt: DateTime! + + "When this integration will next execute" + nextRunAt: DateTime + + "Setup instructions for this integration. May contain sensitive credentials — store securely." + instructions: String! +} + +type IntegrationsPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type integration_leaf." + items: [IntegrationLeaf] +} + +type IntegrationPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: Integration +} + +type IntegrationActivationPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: IntegrationActivation } "How this Massdriver instance is deployed." @@ -358,6 +1195,267 @@ type Server { emailAuthMethods: [EmailAuthMethod] } +"The resource level where a tag constraint applies." +enum TagConstraintScope { + "Tag is set on the organization" + ORGANIZATION + + "Tag is set on projects" + PROJECT + + "Tag is set on environments" + ENVIRONMENT + + "Tag is set on components" + COMPONENT + + "Tag is set on instances" + INSTANCE +} + +"Available fields for sorting tag constraints." +enum OrganizationTagConstraintsSortField { + "Sort alphabetically by tag key" + KEY + + "Sort by resource scope level" + SCOPE + + "Sort by when the constraint was created" + CREATED_AT +} + +"Sorting options for the tag constraints list." +input OrganizationTagConstraintsSort { + "Which field to sort by" + field: OrganizationTagConstraintsSortField! + + "Sort direction" + order: SortOrder! +} + +"Define a structural tag constraint for your organization. Tag constraints control which tags can be set on resources at each level of the hierarchy." +input CreateOrganizationTagConstraintInput { + "The tag key name. Must start with a letter. Keys starting with MD_ are reserved." + key: String! + + "Whether this tag must be set when creating a resource at the specified scope." + required: Boolean + + "The resource level where this tag is set. Values cascade to child resources." + scope: TagConstraintScope! +} + +"A tag constraint returned in list results." +type OrganizationTagConstraintLeaf { + "Unique identifier" + id: ID! + + "The tag key name (e.g. TEAM, DOMAIN)" + key: String! + + "Resource level where this tag is set" + scope: TagConstraintScope! + + "Whether this tag must be set when creating a resource at the specified scope" + required: Boolean! + + "When this constraint was created (UTC)" + createdAt: DateTime! + + "When this constraint was last modified (UTC)" + updatedAt: DateTime! +} + +"A tag constraint with its full details." +type OrganizationTagConstraint { + "Unique identifier" + id: ID! + + "The tag key name (e.g. TEAM, DOMAIN)" + key: String! + + "Resource level where this tag is set" + scope: TagConstraintScope! + + "Whether this tag must be set when creating a resource at the specified scope" + required: Boolean! + + "When this constraint was created (UTC)" + createdAt: DateTime! + + "When this constraint was last modified (UTC)" + updatedAt: DateTime! +} + +type OrganizationTagConstraintsPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type organization_tag_constraint_leaf." + items: [OrganizationTagConstraintLeaf] +} + +type OrganizationTagConstraintPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: OrganizationTagConstraint +} + +"The role of a group within an organization." +enum GroupRole { + "Full administrative access to the organization" + ORGANIZATION_ADMIN + + "Read-only access to the organization" + ORGANIZATION_VIEWER + + "Custom role with project-level access grants" + CUSTOM +} + +"Available fields for sorting groups." +enum GroupsSortField { + "Sort alphabetically by group name" + NAME + + "Sort by when the group was created" + CREATED_AT +} + +"Sorting options for the groups list." +input GroupsSort { + "Which field to sort by" + field: GroupsSortField! + + "Sort direction" + order: SortOrder! +} + +"Create a new group. Groups control which projects members can access." +input CreateGroupInput { + "What this group is for" + description: String + + "A human-readable name for the group" + name: String! +} + +"Update a group's name or description." +input UpdateGroupInput { + "What this group is for" + description: String + + "A human-readable name for the group" + name: String! +} + +"A group returned in list results." +type GroupLeaf { + "Group identifier" + id: ID! + + "Group name" + name: String! + + "What this group is for" + description: String + + "Access level within the organization" + role: GroupRole! + + "When this group was created (UTC)" + createdAt: DateTime! + + "When this group was last modified (UTC)" + updatedAt: DateTime! +} + +"A group with its full details." +type Group { + "Group identifier" + id: ID! + + "Group name" + name: String! + + "What this group is for" + description: String + + "Access level within the organization" + role: GroupRole! + + "When this group was created (UTC)" + createdAt: DateTime! + + "When this group was last modified (UTC)" + updatedAt: DateTime! +} + +"An invitation to join a group." +type GroupInvitation { + "Invitation identifier" + id: ID! + + "Email address of the invited user" + email: String! + + "When the invitation was sent (UTC)" + createdAt: DateTime! +} + +"A group member." +type GroupMember { + "Email address of the member" + email: String! +} + +type GroupsPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type group_leaf." + items: [GroupLeaf] +} + +type GroupPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: Group +} + +type GroupInvitationPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: GroupInvitation +} + +type GroupMemberPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: GroupMember +} + "Create a new organization. An organization is the top-level container for all your projects, environments, and infrastructure resources." input CreateOrganizationInput { "A short, memorable identifier for looking up this organization in the API and CLI. Choose something concise and meaningful—human-readable, not a UUID. Max 20 characters, lowercase alphanumeric only (a-z, 0-9). Immutable after creation." @@ -367,7 +1465,7 @@ input CreateOrganizationInput { name: String! } -"An organization with full details." +"An organization with its full details and related resources." type Organization { id: ID! @@ -382,6 +1480,27 @@ type Organization { "The organization's logo image." logo: LogoOrganization + + "Tag constraints that define the structural tags for this organization." + tagConstraints( + "How to sort results" + sort: OrganizationTagConstraintsSort + + "Pagination cursor from a previous response" + cursor: Cursor + ): OrganizationTagConstraintsPage + + "JSON Schema describing the tag fields for a given resource scope." + tagSchema( + "Resource level (e.g. PROJECT, ENVIRONMENT)" + scope: TagConstraintScope! + ): Map! +} + +"A deleted organization member." +type DeletedOrganizationMember { + "Email address of the removed member" + email: String! } type OrganizationPayload { @@ -395,6 +1514,17 @@ type OrganizationPayload { result: Organization } +type DeletedOrganizationMemberPayload { + "Indicates if the mutation completed successfully or not." + successful: Boolean! + + "A list of failed validations. May be blank or null if mutation succeeded." + messages: [ValidationMessage] + + "The object created\/updated\/deleted by the mutation. May be null if mutation failed." + result: DeletedOrganizationMember +} + "An organization's logo image." type LogoOrganization { id: ID! @@ -504,7 +1634,7 @@ input ViewerOrganizationsSort { order: SortOrder! } -"Sorting options for identities list." +"Sorting options for the identities list." input IdentitiesSort { "Which field to sort by" field: IdentitiesSortField! @@ -513,7 +1643,7 @@ input IdentitiesSort { order: SortOrder! } -"Sorting options for invites list." +"Sorting options for the invites list." input InvitesSort { "Which field to sort by" field: InvitesSortField! @@ -798,6 +1928,9 @@ input AddComponentInput { "Name of the OCI repository for the bundle to add (e.g., 'aws-aurora-postgres')" ociRepoName: OciRepoName! + + "Key-value tags for this component. Keys and values must be strings. Must conform to the organization's tag constraints for the component scope." + tags: Map } "Create a link between two components in a project's blueprint. Links connect an output field on the source component to an input field on the destination component, establishing data flow between infrastructure resources." @@ -821,6 +1954,24 @@ input LinkComponentsInput { toVersion: VersionConstraint! } +"Set the position of a component on the canvas." +input SetComponentPositionInput { + "Horizontal position in pixels" + x: Int! + + "Vertical position in pixels" + y: Int! +} + +"A component's position on the canvas." +type ComponentPosition { + "Horizontal position in pixels" + x: Int! + + "Vertical position in pixels" + y: Int! +} + "A component returned in list results." type ComponentLeaf { id: ID! @@ -828,9 +1979,15 @@ type ComponentLeaf { "Display name" name: String! - "Component description" + "What this component is for" description: String + "Tags assigned directly to this component" + tags: Map! + + "Position on the canvas" + position: ComponentPosition + "When this component was created (UTC)" createdAt: DateTime! @@ -851,9 +2008,15 @@ type Component { "Display name" name: String! - "Component description" + "What this component is for" description: String + "Tags assigned directly to this component" + tags: Map! + + "Position on the canvas" + position: ComponentPosition + "When this component was created (UTC)" createdAt: DateTime! @@ -1229,16 +2392,71 @@ input ParamDimensionsSort { order: SortOrder! } +"An artifact produced or consumed by an instance." +type Resource { + "Resource identifier (`package.field` for provisioned resources, UUID for imports)" + id: ID! + + "Resource name" + name: String! + + "Resource type (e.g., the artifact definition type)" + type: String + + "When this resource was created (UTC)" + createdAt: DateTime! + + "When this resource was last modified (UTC)" + updatedAt: DateTime! +} + +"A resource keyed by the output handle that produced it." +type InstanceResource { + "The output handle that produced this resource" + field: String! + + "The resource artifact" + resource: Resource! +} + +"A dependency keyed by the input handle that consumes it." +type InstanceDependency { + "The input handle that consumes this resource" + field: String! + + "The resource artifact" + resource: Resource! +} + +type InstanceResourcesPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type instance_resource." + items: [InstanceResource] +} + +type InstanceDependenciesPage { + "Pagination cursors" + cursor: PaginationCursor! + + "A list of type instance_dependency." + items: [InstanceDependency] +} + "An instance returned in list results." type InstanceLeaf { id: ID! - "Instance display name" + "Display name" name: String! "Current state of the instance" status: InstanceStatus! + "Tags assigned directly to this instance" + tags: Map! + "Version constraint (e.g., '~1.0' or '1.2.3')" version: String! @@ -1251,6 +2469,18 @@ type InstanceLeaf { "When this instance was last modified (UTC)" updatedAt: DateTime! + "The actual version resolved from the version constraint, used for the next deployment." + resolvedVersion: String! + + "The version last deployed to infrastructure. May differ from resolvedVersion if not yet deployed." + deployedVersion: String + + "Newest version available for upgrade, or null if already on the latest matching version." + availableUpgrade: String + + "Cloud provider costs for this instance." + cost: CostSummary! + "The environment this instance is deployed in." environment: EnvironmentLeaf @@ -1262,12 +2492,15 @@ type InstanceLeaf { type Instance { id: ID! - "Instance display name" + "Display name" name: String! "Current state of the instance" status: InstanceStatus! + "Tags assigned directly to this instance" + tags: Map! + "Version constraint (e.g., '~1.0' or '1.2.3')" version: String! @@ -1280,11 +2513,29 @@ type Instance { "When this instance was last modified (UTC)" updatedAt: DateTime! + "The actual version resolved from the version constraint, used for the next deployment." + resolvedVersion: String! + + "The version last deployed to infrastructure. May differ from resolvedVersion if not yet deployed." + deployedVersion: String + + "Newest version available for upgrade, or null if already on the latest matching version." + availableUpgrade: String + + "Cloud provider costs for this instance." + cost: CostSummary! + "The environment this instance is deployed in." environment: Environment "The bundle version currently deployed." bundle: Bundle + + "Resources produced by this instance (its output artifacts)." + resources(cursor: Cursor): InstanceResourcesPage + + "Dependencies consumed by this instance (artifacts from other instances wired via connections)." + dependencies(cursor: Cursor): InstanceDependenciesPage } type InstancesPage { @@ -1340,6 +2591,9 @@ input CreateEnvironmentInput { "A human-readable name for the environment" name: String! + + "Key-value tags for this environment. Keys and values must be strings. Must conform to the organization's tag constraints for the environment scope." + tags: Map } "Update an existing environment's name and description. The ID cannot be changed after creation." @@ -1349,6 +2603,9 @@ input UpdateEnvironmentInput { "A human-readable name for the environment" name: String + + "Key-value tags for this environment. Keys and values must be strings. Must conform to the organization's tag constraints for the environment scope." + tags: Map } "An environment returned in list results." @@ -1361,6 +2618,9 @@ type EnvironmentLeaf { "What this environment is for" description: String + "Tags assigned directly to this environment" + tags: Map! + "When this environment was created (UTC)" createdAt: DateTime! @@ -1384,6 +2644,9 @@ type Environment { "What this environment is for" description: String + "Tags assigned directly to this environment" + tags: Map! + "When this environment was created (UTC)" createdAt: DateTime! @@ -1457,6 +2720,9 @@ input CreateProjectInput { "A human-readable name for the project" name: String! + + "Key-value tags for this project. Keys and values must be strings. Must conform to the organization's tag constraints for the project scope." + tags: Map } "Update an existing project's name and description. The ID cannot be changed after creation." @@ -1466,6 +2732,9 @@ input UpdateProjectInput { "A human-readable name for the project" name: String + + "Key-value tags for this project. Keys and values must be strings. Must conform to the organization's tag constraints for the project scope." + tags: Map } "A project returned in list results." @@ -1478,6 +2747,9 @@ type ProjectLeaf { "What this project is for" description: String + "Tags assigned directly to this project" + tags: Map! + "When this project was created (UTC)" createdAt: DateTime! @@ -1498,6 +2770,9 @@ type Project { "What this project is for" description: String + "Tags assigned directly to this project" + tags: Map! + "When this project was created (UTC)" createdAt: DateTime! @@ -1639,13 +2914,13 @@ The short name of an OCI repository in your organization's catalog. """ scalar OciRepoName -"Reference to an OCI repository." +"An OCI repository returned in list results." type OciRepoLeaf { "OCI repository name" name: OciRepoName! } -"Reference to an OCI repository." +"An OCI repository with its full details." type OciRepo { "OCI repository name" name: OciRepoName! @@ -1732,6 +3007,27 @@ input OciRepoNameFilter { in: [OciRepoName!] } +""" +Filter for datetime fields. All provided operators are combined with AND. +Useful for date range queries. +""" +input DatetimeFilter { + "Exact match" + eq: DateTime + + "After this date\/time" + gt: DateTime + + "On or after this date\/time" + gte: DateTime + + "Before this date\/time" + lt: DateTime + + "On or before this date\/time" + lte: DateTime +} + "Filter for instance status. All provided operators are combined with AND." input InstanceStatusFilter { "Exact match" @@ -1796,6 +3092,9 @@ type PaginationCursor { previous: String } +"A key-value map. Does not accept arrays, strings, or other JSON primitives." +scalar Map + type ValidationOption { "The name of a variable to be subsituted in a validation message template" key: String! diff --git a/vercel.json b/vercel.json index f806fa4..58c63c0 100644 --- a/vercel.json +++ b/vercel.json @@ -54,6 +54,26 @@ "source": "/guides/self-hosted-install", "destination": "/self-hosted/install", "permanent": true + }, + { + "source": "/integrations/overview", + "destination": "/reference/integrations/overview", + "permanent": true + }, + { + "source": "/integrations/aws-cost-and-usage-reports", + "destination": "/reference/integrations/aws-cost-reports", + "permanent": true + }, + { + "source": "/integrations/azure-cost-management-exports", + "destination": "/reference/integrations/azure-cost-management", + "permanent": true + }, + { + "source": "/integrations/scim", + "destination": "/reference/integrations/scim", + "permanent": true } ] }