/**
 * Sentry.io Node - Version 1
 * Discriminator: resource=release, operation=create
 */


interface Credentials {
  sentryIoOAuth2Api: CredentialReference;
  sentryIoApi: CredentialReference;
  sentryIoServerApi: CredentialReference;
}

/** Create an organization */
export type SentryIoV1ReleaseCreateParams = {
  resource: 'release';
  operation: 'create';
  authentication?: 'accessToken' | 'oAuth2' | 'accessTokenServer' | Expression<string>;
/**
 * The slug of the organization the release belongs to. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 */
    organizationSlug?: string | Expression<string>;
/**
 * A version identifier for this release. Can be a version number, a commit hash etc.
 */
    version?: string | Expression<string> | PlaceholderValue;
/**
 * A URL that points to the release. This can be the path to an online interface to the sourcecode for instance.
 */
    url?: string | Expression<string> | PlaceholderValue;
/**
 * A list of project slugs that are involved in this release. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 * @default []
 */
    projects?: string[];
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** An optional date that indicates when the release went live. If not provided the current time is assumed.
     */
    dateReleased?: string | Expression<string>;
    /** An optional list of commit data to be associated with the release
     * @default {}
     */
    commits?: {
        /** Commit Properties
     */
    commitProperties?: Array<{
      /** The sha of the commit
       */
      id?: string | Expression<string> | PlaceholderValue;
      /** Authors email
       */
      authorEmail?: string | Expression<string> | PlaceholderValue;
      /** Name of author
       */
      authorName?: string | Expression<string> | PlaceholderValue;
      /** Message of commit
       */
      message?: string | Expression<string> | PlaceholderValue;
      /** A list of the files that have been changed in the commit. Specifying the patch_set is necessary to power suspect commits and suggested assignees.
       * @default {}
       */
      patchSet?: {
        /** Patch Set Properties
     */
    patchSetProperties?: Array<{
      /** The path to the file. Both forward and backward slashes are supported.
       */
      path?: string | Expression<string> | PlaceholderValue;
      /** The types of changes that happened in that commit
       */
      type?: 'add' | 'modify' | 'delete' | Expression<string>;
    }>;
  };
      /** Repository name
       */
      repository?: string | Expression<string> | PlaceholderValue;
      /** Timestamp of commit
       */
      timestamp?: string | Expression<string>;
    }>;
  };
    /** An optional way to indicate the start and end commits for each repository included in a release
     * @default {}
     */
    refs?: {
        /** Ref Properties
     */
    refProperties?: Array<{
      /** The head sha of the commit
       */
      commit?: string | Expression<string> | PlaceholderValue;
      /** Repository name
       */
      repository?: string | Expression<string> | PlaceholderValue;
      /** The sha of the HEAD of the previous release
       */
      previousCommit?: string | Expression<string> | PlaceholderValue;
    }>;
  };
  };
};

export type SentryIoV1ReleaseCreateNode = {
  type: 'n8n-nodes-base.sentryIo';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<SentryIoV1ReleaseCreateParams>;
};