class Identifier implements Serializable {
                @Serial
                private static final long serialVersionUID = 1L;

                private String identifier;
                private String file;
                private int index;
                private String mediaType;
                private String identifierType;
                private int identifierExpiresInSeconds;

                public String getIdentifier() {
                    return identifier;
                }

                public void setIdentifier(String identifier) {
                    this.identifier = identifier;
                }

                public String getFile() {
                    return file;
                }

                public void setFile(String file) {
                    this.file = file;
                }

                public int getIndex() {
                    return index;
                }

                public void setIndex(int index) {
                    this.index = index;
                }

                public String getMediaType() {
                    return mediaType;
                }

                public void setMediaType(String mediaType) {
                    this.mediaType = mediaType;
                }

                public String getIdentifierType() {
                    return identifierType;
                }

                public void setIdentifierType(String identifierType) {
                    this.identifierType = identifierType;
                }

                public int getIdentifierExpiresInSeconds() {
                    return identifierExpiresInSeconds;
                }

                public void setIdentifierExpiresInSeconds(int identifierExpiresInSeconds) {
                    this.identifierExpiresInSeconds = identifierExpiresInSeconds;
                }

                @Override
                public String toString() {
                    return String.format(
                            "{identifier: %s, file: %s, index: %d, mediaType: %s, identifierType: %s, identifierExpiresInSeconds: %d}",
                            identifier, file, index, mediaType, identifierType, identifierExpiresInSeconds);
                }
            }

            private String artifact;
            private String authorizationMethod;
            private Data data;
            private Identifier[] identifiers;

            public String getArtifact() {
                return artifact;
            }

            public void setArtifact(String artifact) {
                this.artifact = artifact;
            }

            public String getAuthorizationMethod() {
                return authorizationMethod;
            }

            public void setAuthorizationMethod(String authorizationMethod) {
                this.authorizationMethod = authorizationMethod;
            }

            public Data getData() {
                return data;
            }

            public void setData(Data data) {
                this.data = data;
            }

            public Identifier[] getIdentifiers() {
                return deepCopy(identifiers);
            }

            public void setIdentifiers(Identifier[] identifiers) {
                this.identifiers = deepCopy(identifiers);
            }

            @Override
            public String toString() {<FILL_FUNCTION_BODY>

                return String.format("{artifact: %s, authorizationMethod: %s, data: %s, identifiers: %s}", artifact, authorizationMethod,
                        data, Arrays.asList(identifiers));
            
<no_super_class>